grepするのは難しいです。この番号をどのように分離できますか?

grepするのは難しいです。この番号をどのように分離できますか?

次のファイルの内容があります。

  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フィールドベースの処理にのみ使用されます。)

おすすめ記事