如何使用sed修改文件内容

时间:2016-11-17 11:37:43

标签: linux shell unix awk sed

IP文件 - 1.txt

$ cat 1.txt
'&1'
'&2'
'&3'

如果我想要o / p为

:1
:2
:3

使用sed,(或任何命令),我该如何实现?

3 个答案:

答案 0 :(得分:0)

您可以使用以下2个命令获得o / p。

- > sed -e'/ 1 / b'-e'/ 2 / b'-e'/ 3 / b'-e d 1.txt 要么 - > gsed'/ 1:2:3 /!d'1.txt

答案 1 :(得分:0)

这样可以吗?

sed -e 's/.*[^0-9]\([0-9]\+\)[^0-9]*$/:\1/' 1.txt

:1
:2
:3

答案 2 :(得分:0)

$ cat 1.txt 
Monday {'&1', 'Morning', 'Breakfast'}
Tuesday {'&2', 'Noon', 'Lunch'}
Wednesday {'&3', 'Evening', 'Supper'}
Thursday {'&4', 'Night', 'Dinner'}

$ sed -E 's/\x27&([0-9]+)\x27/:\1/' 1.txt 
Monday {:1, 'Morning', 'Breakfast'}
Tuesday {:2, 'Noon', 'Lunch'}
Wednesday {:3, 'Evening', 'Supper'}
Thursday {:4, 'Night', 'Dinner'}
  • \x27&匹配单引号和&(请参阅Set Packing以供参考)
  • ([0-9]+)捕获反向引用的数字
  • \x27匹配单引号
  • :\1将匹配的模式替换为:和已捕获的数字
  • 注意:某些sed版本使用-r而不是-E来扩展正则表达式选项