shell – sed:同时替换,以及更改行的打印输出?
发布时间:2020-12-16 01:35:07 所属栏目:安全 来源:网络整理
导读:说我有这个文件: cat test.txt EOFline one wordline two wordline three wordline one two wordEOF 让我们说我想用’TWO’替换所有单词’two’,在test.txt文件中就地内联. 现在,我所做的,通常是构建一个“预览”(-n不打印行,然后使用/ p – 仅打印匹配的行
说我有这个文件:
cat > test.txt <<EOF line one word line two word line three word line one two word EOF 让我们说我想用’TWO’替换所有单词’two’,在test.txt文件中就地内联. 现在,我所做的,通常是构建一个“预览”(-n不打印行,然后使用/ p – 仅打印匹配的行): $sed -n 's/two/TWO/gp' test.txt line TWO word line one TWO word …然后我通常执行实际的就地替换(使用-i,而不使用/ p): $sed -i 's/two/TWO/g' test.txt $cat test.txt line one word line TWO word line three word line one TWO word 有没有办法让sed在文件中就地更改行,并从单个命令行将更改的行打印到stdout?
在Linux上,您可以逃脱:
sed -i '/two/{s/two/TWO/g; w /dev/stdout}' test.txt 在BSD系统(包括Mac OS X)上,sed有关于何时可以将动作组合到一行上的略微古怪的规则,我不得不使用: sed -i '/two/{s/two/TWO/g; w /dev/stdout }' test.txt (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Angular入门2
- Angular 2 – 根据其中一个属性从对象数组中删除元素
- angularjs – Ui-sref在离子框架中没有生成正确的URL
- typescript – 每当我在Angular 2中选择一个新选项时如何触
- AngularJS和Django的DOM,JavaScript和服务器端数据库之间是
- 如何使用vim中的鼠标选择一大块文本并将其粘贴到当前光标位
- 使用Angularjs加密客户端本地存储数据
- 从shell脚本运行ssh-agent
- Angularjs:用户选择ui-select-choice中的ng-click
- 如何将ng-bootstrap添加到Angular-CLI(Broccoli版本)项目中