我需要启动一些东西来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
应该删除什么?
用awkreplaceUNIX列
按条件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] 举报,一经查实,本站将立刻删除。