次のファイルがあります
'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'
条件は
- ABCという言葉が含まれています。
- パターンマッチ「Y」または「N」、パイプの後にスラッシュが続く必要があります。
私は現在立ち往生しています
wordY="'Y'|"
単語 N = "'N'|"
grep ABC test.txt | grep "$wordY|$wordN"
どれが戻ってきますか?
'ABC'|filler|'Y'|'john/1'|'text'
'ABC'|filler|'Y'|'john1'|'te/xt' //i do not want this
'ABC'|filler|'N'|'mary/2'|'text'
4番目の列にスラッシュを使用して結果値を返すコマンドをどのように追加しますか?
答え1
使用grep
$ grep -E "^'ABC'\|[^|]*\|'(Y|N)'\|'[[:alpha:]]+/" input_file
'ABC'|filler|'Y'|'john/1'|'text'
'ABC'|filler|'N'|'mary/2'|'text'