文本处理例子

替换关键字字符串:

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
原文地址:https://www.cnblogs.com/37yan/p/11041181.html