双引号查询下的grep-v
我们有一部分代码说明双引号查询下的grep-v,grep,double-quotes,quoting,Grep,Double Quotes,Quoting,我们有一部分代码说明 "diff file1 file2 | /usr/bin/grep -v "#" | /usr/bin/grep ^\> | /usr/bin/awk '{print $3}' | /usr/bin/xargs mkdir" 整个语句用双引号括起来(这是应用程序语法的要求)。当应用程序达到这个阶段时,它给出grep错误。 此语句在命令行上运行良好。但通过应用,给grep带来了错误 用法:grep[选项]。。。模式[文件] 有关详细信息,请尝试“grep--he
"diff file1 file2 | /usr/bin/grep -v "#" | /usr/bin/grep ^\> | /usr/bin/awk '{print $3}' | /usr/bin/xargs mkdir"
整个语句用双引号括起来(这是应用程序语法的要求)。当应用程序达到这个阶段时,它给出grep错误。
此语句在命令行上运行良好。但通过应用,给grep带来了错误
用法:grep[选项]。。。模式[文件]
有关详细信息,请尝试“grep--help”
所以不确定是第一个grep还是第二个grep是个问题。似乎是双引号的问题。尝试将您的第一个grep更改为
/usr/bin/grep-v'#'
,将第二个grep更改为/usr/bin/grep'^>'
您正在使用的grep-v^>
,
表示“重定向”
例如,如果您这样做:
grep ^>output
所有输出将存储在文件output
中
因此,您需要做的是引用^>
,以便将其解释为您正在寻找的模式:
"diff file1 file2 | /usr/bin/grep -v "#" | /usr/bin/grep "^>" | /usr/bin/awk '{print $3}' | /usr/bin/xargs mkdir"
^ ^
顺便说一下,请注意,所有的grep
s都可以这样减少:
diff file1 file2 | awk '/#/ || /^>/ {print $3}' | /usr/bin/xargs mkdir
^^^ ^^ ^^^^
either contains # | |
or starts with >
在这种情况下,从双引号改为单引号没有任何意义,但是。。。