繁体   English   中英

如何使用sed修改文件内容

[英]How to modify the file content using sed

IP文件1.txt

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

如果我想将o / p作为

:1
:2
:3

使用sed(或与此相关的任何命令),我如何实现?

awk '{gsub(/'"^'"'|'"'$"'/,"");gsub(/&/,":")}1' input
:1
:2
:3

在这里, awkgsub函数用于将单引号替换为空白,而另一个gsub用于替换&: 1表示以awk打印。

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

-> sed -e'/ 1 / b'-e'/ 2 / b'-e'/ 3 / b'-ed 1.txt或-> gsed'/ 1:2:3 /!d'1 。文本

这样好吗

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

:1
:2
:3
$ 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&匹配单引号和& (请参阅ASCII设置以供参考)
  • ([0-9]+)捕获数字以进行反向引用
  • \\x27匹配单引号
  • :\\1将匹配的模式替换为:和捕获的数字
  • 注意:某些sed版本使用-r代替-E来扩展正则表达式选项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM