如何显示 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

我只得到一个结果:

12345678

我如何使结果像这样:

12345678
87654321
12348765

答案1

grep只返回一行,[^ ]*模式匹配12345678::hashtext_20191030::ITEM+…以及该行的其余部分,直到找到空格字符。如果您只想匹配ITEM+和 后面的数字,请使用

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

或者

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

你会得到多个结果。

你应该得到所有的数字

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

返回第 6 个字符,直到行尾。

相关内容