Grep
egrep 指定字元串和換行符
我收到一個預先指定的字元串列表。在許多文本文件(下面的範例)中,我想搜尋不以列表中的字元串之一開頭的字元串。有時,文本文件中會出現空白連結——我的程式碼會找到它們,但我也不想要它們。
到目前為止我的腳本:
# The list of strings I receive ENTRY_LIST="ACK AFF AUTH CON DIS EDITOR FUND JEL MISC PHD REF SEM TITLE VIS" # I transform blanks to | in order to use egrep on in TRANSFORMED_ENTRY_LIST=${ENTRY_LIST// /\|} egrep -rvn ^"($TRANSFORMED_ENTRY_LIST):"
範例數據如下:
TITLE: xxxx AUTH: yyy FUND: ZZZ TITLE: BERLIN AUTH: STUTTGART AFF: WIEN ACK: KIEL CNO: HAMBURG SEM: BRESLAU FUND: DANZIG
該行
CNO: HAMBURG
是錯誤的,但我的程式碼也顯示了第 4 行。
只需添加
|^$
到正則表達式的末尾:egrep -rvn "^($TRANSFORMED_ENTRY_LIST):|^\$"
這將拒絕輸入中的空行。