一. 命令
1. c 行替换
sed '/TAG/c\hello, world' ur_file # 对有TAG字符串的行都替换为“hello, world”
sed '1 c\hello, world' ur_file # 把第一行替换为"hello, world"
2. & 修改模式将放在匹配模式之前/后 ('&' 字符,该字符告诉 sed 插入整个匹配的规则表达式)
echo "hello, world" | sed 's/hello/GG &/' # GG hello, world
echo "hello, world" | sed 's/world/& GG/' # hello, world GG
3. r 读文件并追加在模式匹配的行后面
sed '/hello/ r a.txt' ur_file
4. n/N 把输入的下一行读入/追加到模式空间
sed 'N; s/\n//g' ur_file # 把1,2行, 3,4行, n,n+1行合并
5. r 把xx文件的所有内容读入到yy行之后
sed '/yy/r xx' file
6. a 字符串 把字符串追加到匹配行后面
sed -i '/\#\!\/bin\/\(bash\|sh\)/ a . /usr/local/app/wsl_bin/bash_toy.sh --rtx_name=binaryzuo --time_needed=600 --serv_name="QQGame"' 1.sh
二. 选项
1. -i 直接修改了原文件
sed -i 's/hello/HELLO/g' ur_file # 这样直接把源文件里的hello都替换成了HELLO, 而不是把修改后的写到标准输出。
sed -i.bak 's/hello/HELLO/g' ur_file # 写的时候备份原来的文件为 ur_file.bak
2. -n 使用安静模式。 在一般的sed的用法中, 所有来自STDIN的数据一般都会显示在屏幕上。 但是如果加上-n选项, 则只有经过sed特殊处理的那一行才会列出来。
'-n' 选项,该选项告诉 sed 除非明确要求打印模式空间,否则不这样做
3. -r 支持扩展的正则表达式。 默认情况下是基础的正则表达式语法
sed ':a;N;s/\n/ /;ta'
sed 's!!!' urfile
sed的这些高级东东你知道吗? 看起来真的头晕
阅读(1063) | 评论(0) | 转发(0) |