替换关键字字符串:
sed -i s/abc/abcd/g test.txt #把文件中的abc换成abcd sed -i ':a;N;$!ba;s# #,#g' test.txt #把文件中的回车符替换成逗号 cat test.txt |awk -v RS='' '{gsub(" "," "); print }' #把文件中的回车符替换成空格 sed -e 's/,/ /g' /tmp/monitor_disk.txt #把逗号替换成换行
删除符合条件的行:
sed -i /test/d /file.txt #删除文件中有关键字“test”的行 sed -i /^$/d test.txt #删除一个文件中所有空行 sed -i /^#/d test.txt #删除一个文件所有以"#"开头的行 sed -i /^abc/d test.txt #把文件中以abc开头的行删除 sed -i /abc$/d test.txt #把文件中以abc结尾的行删除 sed -i '1,17d' /tmp/monitor_disk.txt #删除1到17行
在关键字前后插入字符串:
str="abc" echo $str |sed 's/abc/& xxx/' abc xxx echo $str |sed 's/abc/xxx &/' xxx abc
在关键字前后插入行:
echo "abc" |sed '/abc/i\xxx' xxx abc echo "abc" |sed '/abc/a\xxx' abc xxx
截取连个关键字之间的字符串:
str="<version>1.1.2</version>" echo $str |grep -oP '(?<=<version>).+?(?=</version>)' 1.1.2 echo $str |sed -r 's/.*<version>(.*)</version>.*/1/' 1.1.2
打印关键字前后的字符串:
str="test=test1" echo "$str" | cut -d '=' -f 1 test echo "$str" | cut -d '=' -f 2 test1