Sed:在线编辑器,一次只处理一行内容
常用格式:sed [-nefri] [动作]
参数作用如下:
-n:使用安静模式,一般所有的STDIN数据都会被列出到终端上,加上-n之后,只有经过处理的行才会被列出来。
-e:直接在命令行进行sed编辑,不会改变文本内容。
-i:直接修改读取的文件内容,而不是输出到屏幕。
-f:直接将sed的动作写在一个文件中,-f filename则可以运行filename内的sed动作。
动作:[m[,n]] function
m和n不一定存在,一般代表的是进行操作的函数范围:例:10,20[动作]表示在10-20行进行操作。
Function:
a:新增,可以接字符串,这些字符会在下一行显示
c:取代,后面接字符串,这些字符串会取代m到n行之间的内容
d:删除,删除这些行
i:插入,在后面接字符串会出现在上一行
p:打印,将某个选择的数据打印通常与sed -n一起运行
s:取代,直接取代,
例:
1. sed -e “1,3 s/old/new/g“ c.txt将所有适配的old都替换成new
2. sed -e “1,3 s/old/new/“ c.txt 将行首适配的第一个old都替换成new
3. Sed -i ‘s/^@//’ c.txt:去掉行首带@的字母
4. Sed -i ‘/asdf/i zhangtao’c.txt:在asdf的上一行插入一行字符串
5. Sed -i ‘/asdf/a zhangtao’c.txt:在asdf的下一行插入一行字符串
6. Sed -i “2,5”c.txt:删除2到5行
7. Sed -i “2,&d”c.txt:删除2到最后一行
8. Sed -i “&d” c.txt:删除最后一行