1、-i 直接修改源文件,如果不用这个选项,必须重定向到新文件,还可将源文件修改前备份
sed -i.bak 's/123/234/' test.txt
将test.txt备份为test.txt.bak,然后将文件内出现的所有”123”替换为”234”
sed -i "s/^123/234/" test.txt
将 test.txt文件中以”123”开头的行的”123”换为”234”
sed "s/123/234/" test.txt > test.new.txt
将 test.txt文件中出现的所有”123”替换为”234”并重定向到test.new.txt文件中
sed "s/\(.*\)/cd \/home\/T3A\/server\/android;mkdir -p \1;cd \1;git init --bare/" project.list > project.sh
将project.list里面的每一行标志为1,然后用命令行”cd \/home\/T3A\/server\/android;mkdir -p \1;cd \1;git init --bare"
替换,重定向到project.sh文件中
2、-e 多次编辑
sed -e 's/123/234/g' -e '7 s/^/#' test.txt
先将所有的123替换为234,再将第7行前加#注释
3、-f 指定sed脚本文件名
sed -f sedlist datafile
相当于把sed要执行的指令放在sedlist中,然后使用-f指定该文件,并作用在datafile文件上如 sed "s/\(.*\)/cd \/home\/T3A\/server\/android;mkdir -p \1;cd \1;git init --bare/" project.list > project.sh
可以先把"s/\(.*\)/cd \/home\/T3A\/server\/android;mkdir -p \1;cd \1;git init --bare/"
放入sedlist中(不需要双引号),然后再sed -f sedlist project.list > project.sh
,结果一样
4、-n 取消默认的输出
sed -n '/123/'p test.txt
只输出在test.txt文件中所有带”123”的行