我正在尝试grep
对另一个文件的文件;但是,我在一行上遇到多个条目时遇到问题。在线上擦除多个条目
这是我设置的一个简单的例子:
grep -of <(echo "VHDL\nC++\nHello") <(echo "C++ VHDL")
其输出
VHDL
当我试图得到它的输出
C++
VHDL
感谢。
编辑:我使用的是BSD grep
,而不是GNU grep
,它按需要工作。
我正在尝试grep
对另一个文件的文件;但是,我在一行上遇到多个条目时遇到问题。在线上擦除多个条目
这是我设置的一个简单的例子:
grep -of <(echo "VHDL\nC++\nHello") <(echo "C++ VHDL")
其输出
VHDL
当我试图得到它的输出
C++
VHDL
感谢。
编辑:我使用的是BSD grep
,而不是GNU grep
,它按需要工作。
您的方法是有效的。但是,您的echo "VHDL\nC++\nHello"
只输出一行,而不是三行。发生这种情况是因为echo
不能解释转义字符,所以您需要使用一些机制将它们插入到流中。假设你使用bash:
$ grep -of <(echo $'VHDL\nC++\nHello') <(echo "C++ VHDL")
C++
VHDL
你测试过'echo“VHDL \ nC++ \ n你好吗?提示:'echo'不解释反斜杠转义。 –
@BenjaminW。我正在使用打印新行字符的BSD'echo'。 – sbdchd
如果使用Bash,'echo'使用内建函数(它不会解释没有'-e'选项的反斜杠转义符),而不是系统命令。你似乎在使用Bash,因为流程替换是Bashism。 'type echo'返回什么? –