Grep

如何使用包含單引號,管道和帶有/之後的模式的模式來grep單行?

  • October 2, 2022

我有一個文件如下

'ABC'|filler|'Y'|'john/1'|'text'
'ABC'|filler|'Y'|'john1'|'te/xt'
'ABC'|filler|'N'|'mary/2'|'text'
'DEF'|filler|'N'|'jane/3'|'text'

我希望我的 grep 返回以下結果

'ABC'|filler|'Y'|john/1|'text'
'ABC'|filler|'N'|mary/2|'text'

條件是

  1. 包含單詞 ABC
  2. 匹配 ‘Y’ 或 ‘N’ 的模式並且在管道之後應該包含一個正斜杠

我目前被困在

wordY="‘Y’|"

wordN="‘N’|"

grep ABC test.txt | grep" $ wordY| $ 單詞N"

哪些正在返回

'ABC'|filler|'Y'|'john/1'|'text'
'ABC'|filler|'Y'|'john1'|'te/xt'    //i do not want this
'ABC'|filler|'N'|'mary/2'|'text'

我如何添加到命令以在第 4 列中返回帶有正斜杠的結果值?

使用grep

$ grep -E "^'ABC'[^YN]*(Y|N)'\|'[[:alpha:]]+/" input_file
'ABC'|filler|'Y'|'john/1'|'text'
'ABC'|filler|'N'|'mary/2'|'text'

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