shell中 sed或awk 通过分隔符删除相应字段

文件格式如下aa|bb|cc|dd|cc|dd|ee|ff|想把第三个字段删除。变成aa|bb|dd|cc|dd|ff|请问通过sed或者awk如何表达呢?... 文件格式如下
aa|bb|cc|dd|
cc|dd|ee|ff|
想把第三个字段删除。变成
aa|bb|dd|
cc|dd|ff|
请问通过sed或者awk如何表达呢?
展开
 我来答
eagle71106
推荐于2017-11-28 · TA获得超过378个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:141万
展开全部
awk -F"|" '{print $1"|"$2"|"$4"|"}' yourfile

这样就会在终端输出结果,如果要保存,只需把输出重定向到一个文件就行了

awk -F"|" '{print $1"|"$2"|"$4"|"}' yourfile >newfile

 

或者使用sed

sed 's/|[^|]*\(|[^|]*|$\)/\1/' yourfile

如果想直接修改原文件:

sed -i 's/|[^|]*\(|[^|]*|$\)/\1/' yourfile
hqxz556
2013-07-05 · TA获得超过2831个赞
知道大有可为答主
回答量:1686
采纳率:93%
帮助的人:574万
展开全部

如果乐意,cut 也可以完成类似的任务:

cut -d\| -f1-2,4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式