小编ran*_*ame的帖子

如何为在一行中多次出现的正则表达式创建 grep

我想 grep 一个正则表达式。我正在搜索的模式可能会在一行中出现多次。如果该模式出现多次,我想用逗号分隔每次出现的情况,并仅在新文件中打印匹配项而不是整行。如果它没有出现在一行中我想打印na

例子。我想使用这个正则表达式来查找模式中的数字:[12.123.1.3]。

grep -oh "\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]" 'filename'
Run Code Online (Sandbox Code Playgroud)

输入文件(input.txt)

blabla [11.335.2.33] xyuoeretrete [43.22.11.88] jfdfjkfbs [55.66.77.88]
blabla [66.223.44.33]
foo bar
blabla [1.2.33.3] xyuoeretrete [42] bla[1.32.2.4]
Run Code Online (Sandbox Code Playgroud)

新文件(output.csv)中的预期结果:

11.335.2.33,43.22.11.88,55.66.77.88
66.223.44.33
n.a.
1.2.33.3,1.32.2.4
Run Code Online (Sandbox Code Playgroud)

注:我使用Ubuntu

grep sed regular-expression

6
推荐指数
1
解决办法
1899
查看次数

标签 统计

grep ×1

regular-expression ×1

sed ×1