我们有一部分代码陈述,
"diff file1 file2 | /usr/bin/grep -v "#" | /usr/bin/grep ^\> | /usr/bin/awk '{print $3}' | /usr/bin/xargs mkdir"
整个语句用双引号括起来(是应用程序语法的要求)。当应用程序到达此阶段时,它会给出grep错误。 此语句在命令行上运行良好。但是通过应用程序,为grep提供了错误。
用法:grep [OPTION] ... PATTERN [FILE] ...
试试`grep --help'了解更多信息。
所以不确定它是第一个grep还是第二个grep这是一个问题。
答案 0 :(得分:0)
似乎是双引号的问题。尝试将您的第一个grep更改为/usr/bin/grep -v '#'
,将第二个grep更改为/usr/bin/grep '^>'
答案 1 :(得分:0)
您使用的是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
都可以这样缩小:
diff file1 file2 | awk '/#/ || /^>/ {print $3}' | /usr/bin/xargs mkdir
^^^ ^^ ^^^^
either contains # | |
or starts with >