次のファイルの内容があります。
63 41,3,11,12
1 31,60,72,96
7 41,3,31,14,15,68,59,60
7 60,72,96
7 60
1 41,3,31,31,14,15,68,59,60
60 41,3,115,12,13,66,96
1 41,3,11,12,13,66,96
「60」の前に「7」をgrepする必要があります(「60」の後に「72,96」が来ない)。
ベストアンサー1
コメントに基づいて修正された例
$ cat ip.txt
7 60,72,96
7 60
3 601
2 60,72,962
5 60,3
43 60
3 52360
$ grep -oP '^\h*\K\d+(?=\h+60\h*$)' ip.txt
7
43
-oP
一致する部分だけを印刷してPCREを使用してください。^\h*\K
行の先頭の空白文字を無視\d+
印刷する数量(?=\h+60\h*$)
後に空白文字が続く場合にのみ、60
行末まで空白を選択できます。
または、awk
フィールドベースの処理にのみ使用されます。)