Grep

egrep 指定字元串和換行符

  • January 29, 2017

我收到一個預先指定的字元串列表。在許多文本文件(下面的範例)中,我想搜尋不以列表中的字元串之一開頭的字元串。有時,文本文件中會出現空白連結——我的程式碼會找到它們,但我也不想要它們。

到目前為止我的腳本:

# 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):|^\$"

這將拒絕輸入中的空行。

引用自:https://unix.stackexchange.com/questions/178636