获取sed查询所有匹配行中的最后一行,并在所匹配最后一行后添加数据

qq_30806533 2017-02-09 11:25:10
例如1.txt
3=A
3=B
3=A
3=B
3=A
先获取3=A的全部数据 sed -n '/3=A/p' 1.txt
结果如下:
3=A
3=A
3=A
现在想获取最后一行3=A,并在之后添加3=C,应该怎么做? 根据行号插入?还是可以获取到匹配行的最后一行然后插入?谢谢前辈帮忙。
...全文
2792 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nswcfd 2017-02-09
  • 打赏
  • 举报
回复
{ echo A; echo B; echo A; echo B; echo A; echo B; } | sed -n /A/p | sed '$aC'
ipqtjmqj 2017-02-09
  • 打赏
  • 举报
回复
插入用awk方便

lastline=`cat 1.txt | grep -n 3=A | sed -n '$p'`
line_no=`echo $lastline | cut -c1`; 
cat 1.txt | awk -v line_no="$line_no" '{print NR == line_no ? $0"\n3=C" : $0}'
ipqtjmqj 2017-02-09
  • 打赏
  • 举报
回复
grep -n 获取行号,再用cut paste重组

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧