更新:
在再次尝试之后,结果发现脚本完全按照它应该的方式工作。我一定太累了,做了一些愚蠢的事情,导致我认为剧本错了,而事实上是我自己-(
感谢你的帮助chepner,shelter,William,glenn和Jonathan,我想我的困惑实际上是由我在当前目录上执行查找"引发的。">
谢谢提示!
此线程已准备好关闭。
考虑以下内容:
find . | grep -E ".*.log$"
如果这是在命令行上运行的,它将按预期工作,即打印出以
.log
结尾的所有目录和文件然而,当在脚本中时,例如:
#!/bin/sh find . | grep -E ".*.log$"
它失败了。打开
set -x
进行检查时,我注意到正则表达式.*.log$的脚本执行是(auto-??(用单引号引用,如:+ find . + grep -E '.*.log$'
即使我的代码包含双引号 我该如何预防这个
限制:
- 挑战是同时使用
find
和grep
,不允许使用其他cmd- 同样,挑战是同时使用,而不仅仅是
find
,正如有人可能想要建议的那样- 进一步的信息,用于
grep
的正则表达式比这里显示的要复杂得多(几个OR
分开RegExps(,我在这里简化了它,因为它会带来麻烦已经有一个了我已经做了4个多小时了,但没有结果。我已经搜索过了谷歌和StackOverflow,但我没有发现类似的东西。我担心解决方案非常简单,我只是太愚蠢了,找不到它?:-(
感谢您的帮助,请提前!
您使用的操作系统和可执行版本是什么?
你的小脚本:
#!/bin/sh
find . | grep -E ".*.log$"
或
#!/bin/bash
find . | grep -E ".*.log$"
对我来说,使用在Debian Wheezy上效果很好(单反斜杠或双反斜杠(
yba@tavas:~$ bash --version
GNU bash, version 4.2.37(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
yba@tavas:~$ grep --version
grep (GNU grep) 2.12
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Mike Haertel and others, see <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
你的剧本在什么意义上失败了?
以下是样本输出:
yba@tavas:~$ ./st.sh
./Downloads/serial_update_rev11.log
./.virt-manager/virt-manager.log
./Android/adt-bundle-linux/eclipse/configuration/org.eclipse.update/install.log
./Android/workspace/.metadata/.plugins/org.eclipse.cdt.core/.log
./Android/workspace/.metadata/.log
./ti-dvsdk_dm365-evm_4_02_00_06/xdctools_3_16_03_36/eclipse/plugins /org.eclipse.rtsc.xdctools.product_3.16.3.36/META-INF/Make.log
./ti-dvsdk_dm365-evm_4_02_00_06/codecs-dm365_4_02_00_00/packages/ittiam/codecs/g711_dec /hs_err_pid17410.log
./.local/share/gvfs-metadata/root-dfdae0ca.log
./.local/share/gvfs-metadata/label-AR7266WnXx20V2_1.2-a6becf19.log
./.local/share/gvfs-metadata/home-2def37e1.log
./.local/share/gvfs-metadata/uuid-5c7747c5-81e5-4464-bae0-2c61afc73da4-7a539d2d.log
./.local/share/tracker/tracker-store.log
./.local/share/tracker/tracker-miner-fs.log
./.local/share/tracker/tracker-extract.log
yba@tavas:~$