微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果find某个模式,AWK或sed需要从输出中删除行

我需要启动一些东西来validation一个文件。 在两个字段中用逗号分隔的文本,在第二个字段中我们可以find/*/*/*这是我想要的数据。 我只想丢弃/*/*

input文件

\CIFSERVER1Share1,/fs1_casa/c/share1 \CIFSERVER1Share2,/fs2_casa/c/share2 \CIFSERVER1Share3,/fs1_casa/c/share3 \EDULINedu,/edu1 \CIFSERVER2root,/fs1_casa \CIFSERVER2root,/fs2_casa \CIFSERVER2root,/fs3_casa \CIFSERVER2root,/fs1_casa

输出应该是:

\CIFSERVER1Share1,/fs1_casa/c/share3

应该删除什么?

如何在unix命令行中以文字分割文件

用awkreplaceUNIX列

将时间戳添加到shell脚本的cat输出

使用sed,line cuts来提取sql insert

按条件select行并用一行命令计数

\EDULINedu,/fs1_casa

从top命令输出中join并处理两行

用awk或sedreplacestring中的字符

如何按顺序打印包含特定string的行?

如何从一个string中提取一个string开始和结束用户定义的特殊字符?

在shell脚本中,HTML如何在awk命令中工作?

如果您试图打印所有包含超过3个/一行的行,则可以这样做:

sed -n '@,.*/.*/.*/@p' input

限制到那些包含3 / :

sed -n '@,([^/]*/){3}[^/]*$@p' input

如果您必须限制搜索到第二个字段(例如,可能有多个逗号):

awk '$2 ~ /[/].*[/].*[/]/' FS=,input

要么

awk -F,'$2 ~ //.*/.*//' input

如果你在逗号后需要三个或更多的斜线,

grep ',/.*/.*/' file

如果你想在逗号后面保留那些有3个或更多斜杠的条目,把两条或更少的条目去掉,那么我会使用:

sed -n '/[^,]*,/[^/]*/[^/]*//p'

-n禁止正常打印。 该模式查找斜杠后跟非斜杠,另一个斜线,更多的非斜线,以及另一个斜线和打印它。 如果你必须在第三个斜杠之后有一个字符,在正则表达式的第三个/之后加上[^/] 。

只有两个字段,这很容易用grep完成:只保留逗号后面有三个/字符的行。

grep ',/.*/.*/'

有了更多的领域,而grep或sed可以工作,使用awk更容易。

awk -F,'$2 ~ /(/.*){3}/ {print}'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐