cutコマンドで見つかったすべての部分文字列を表示する方法

cutコマンドで見つかったすべての部分文字列を表示する方法

grepコマンドがあります

grep -o 'ITEM+[^ ]*' "file.txt"

返される文字列は次のとおりです。

ITEM+12345678::hashtext_20191030::ITEM+87654321::hashmap_20191030::ITEM+12348765::hashvalue_20191001

したがって、切り取りコマンドを追加すると

grep -o 'ITEM+[^ ]*' "file.txt" | cut -c 5-12

結果は1つだけ得られます。

12345678

どうすれば次のような結果を作成できますか?

12345678
87654321
12348765

答え1

grep空白文字が見つかるまで、1行、パターンの[^ ]*一致、12345678::hashtext_20191030::ITEM+…および残りの行のみを返します。ITEM+andの後の数字だけを一致させるには、次のようにします。

grep -o 'ITEM+[^:]*' file.txt

または

grep -o 'ITEM+[0-9]*' file.txt

いくつかの結果が得られます。

あなたはすべての数字を取得する必要があります

grep -o 'ITEM+[^:]*' file.txt | cut -c 6-

行末までの6番目の文字を返します。

関連情報