【问题标题】:Remove lines containg string followed by x number of numbers删除包含字符串后跟 x 个数字的行
【发布时间】:2016-06-29 16:39:56
【问题描述】:

您好,我想从 csv 中删除包含字符串 vol 后跟 2 个或更多数字的行。

示例数据:

2454564, Stage Mechanics vol 4   8 9, 121545, 454545454
24545454, Dancing on ice vol 5, 454554, 45454545
5454545, Who is the man, 545456454, 4545454
8785648654, year of the Panda vol 89 12, 545454, 545454

期望的输出:

24545454, Dancing on ice vol 5, 454554, 45454545
5454545, Who is the man, 545456454, 4545454

我知道我可以使用:

cat $csv1 | grep -vi "vol" > $newcsv

但显然这只会删除带有“vol”的行 - 我如何将后跟 2 个或更多数字规则合并到此代码中?

谢谢

【问题讨论】:

  • grep -vi 'vol [[:digit:]]{2}'

标签: linux bash grep


【解决方案1】:

你可以使用这个 grep:

grep -Ev '\bvol([[:blank:]]+[[:digit:]]+){2}' file

24545454, Dancing on ice vol 5, 454554, 45454545
5454545, Who is the man, 545456454, 4545454

模式([[:blank:]]+[[:digit:]]+){2} 将匹配vol 之后以空格/制表符分隔的至少 2 个数字。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-11-07
  • 1970-01-01
  • 2014-04-16
  • 1970-01-01
  • 2022-08-11
  • 2018-11-21
  • 2022-06-10
相关资源
最近更新 更多