tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
阅读:3487回复:2

问问题,sed可否写判断

楼主#
更多 发布于:2013-04-08 11:28
sed
文本内容
testtest
tefst0000fff
teffff
用哪些方式可以实现:
如果文本内含有“0000”则替换,否则在最后插入
一行写完,比如:

在行尾插入
sed -i 's/$/&ffff/g' filetxt'
替换
sed -i 's/0000/ffff/g' filetxt'
如何写成一行,存在0000则替换,否则在最后插入,或者用其他办法,尽量简短
@dongnan 解决办法:
echo 'testtest 
tefst0000fff 
teffff' | sed -re 's/0000/AAAA/g' -e '/AAA/! s/$/&BBB/g' 
testtestBBB 
tefstAAAAfff 
teffffBBB
北京@greysky 解决办法:这个方法还真一直没注意到过

sed -r 's/0000/ffff/;T; a new line'


最后改为,不过感觉会更短才对,总觉得应该还可以去掉什么的
sed -r -i 's/'0000'/ffff/g;t;s/$/&\ ffff/g'  filetxt
会不会我不知道,反正我在努力!
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
沙发#
发布于:2013-04-08 14:07
echo 'testtest
tefst0000fff
teffff' | sed -re 's/0000/AAAA/g' -e '/AAA/! s/$/&BBB/g'
testtestBBB
tefstAAAAfff
teffffBBB
tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
板凳#
发布于:2013-04-08 14:39
dongnan:echo 'testtest
tefst0000fff
teffff' | sed -re 's/0000/AAAA/g' -e '/AAA/! s/$/&BBB/g'
testtestBBB
tefstAAAAfff
tefff...
回到原帖
会不会我不知道,反正我在努力!
游客

返回顶部