sed命令在实际使用过程中千变万化,本文主要记录我自己在使用sed命令过程中一些具体用法的记录。以备以后重复查阅。
sed -i 实际执行sed命令。
sed命令不加-i可用于测试。只会空跑一次命令后返回结果,不会实际执行。
输出时只想查看修改的行,可以使用-n和p的组合参数。
- root@test:~/test# cat test
- 123.exe
- 456.log
- 000.log
- 789.conf
- root@test:~/test# sed -n "s/log/xxx/g"p test
- 456.xxx
- 000.xxx
1.替换的字符串中有空格时,需要使用转义字符"\"。
如:将"111"替换为" xxx"
sed -i 's/111/\ xxx/g' test.txt
1.匹配以abc字符串开头的行,将111修改为222
sed -i "/^abc/s/111/222/g" test.txt
2.匹配以变量开头时,变量要加单引号
sed -i '^'$test'/s/111/222/g' test.txt
使用双引号,即可直接使用变量。
- [root@]# a=34
- [root@]# b=56
- [root@]# echo 123456 | sed "s/${a}/${b}/"
- 125656
如果空行什么内容都没有
sed -i '/^$/d' file_name
如果空行开头有若干空格
- sed -i '/^\s*$/d' file_name
- #或
- sed -i '/^ *$/d' file_name