我正在嘗試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'返回什麼? –