1つ以上のインスタンスを含むが他の数字は含まないファイルの行を検索しようとします1234
(数値以外の文字は許可されています)。他の数字を使用すると、行が一致しなくなります。
有効な例:
1234
1234 xxx
xxx 1234
1234 1234
1234 xxx 1234
無効な例:
12341234
12345
1234xxx345
1234 345
1234xxx
xxx1234
1234xxx1234
これが私が使用したものです:
grep -E '^([^0-9]*1234)+[^0-9]*$' file.txt
ただし、このコマンドは有効な12341234も出力します。これを防ぐにはどうすればよいですか?
ベストアンサー1
awk
grep
これよりも便利かもしれません。フィールド区切り文字を数字以外の連続文字に設定してからフィールドを繰り返し、空でない各フィールドが正確に次の場合にのみ行を印刷します。1234
awk -F'[^[:digit:]]+' '{
for(i=1; i<=NF; ++i)
if (($i) && ($i != 1234)) next
}; {print}' file.txt