Linux命令-sed命令
/
2647 次浏览/
Linux命令
sed 流编辑器,实现对文件的增删改替换查 -n 取消默认输出,擅长处理行(三剑客老二) -r 支持正则,不需要\反斜杠 -i 修改内容 -e 允许多项编辑 例子:sed -n -e '2p' -e '6p' file.txt 取出第二行和第六行内容 或sed -n -e '2p;6p' file.txt 函数 a 追加文本到指定行后 sed '2a test\ntest1' file.txt 从第二行开始把test追加到内容后面,加个\n代表多行追加 p 打印 例子:sed -n '20,30p' file.txtsed -n '20p' file.txt sed -n '$p' file.txt d 删除 c 替换 i 插入文本到指定行前 sed '2i test' file.txt 插入到第二行 r 从文件中读入 w 写入到文件中 s 单独使用→将每一行中第一处匹配的字符串进行替换 g 每一行进行匹配上的内容都替换 和s一起使用 's###g' 还必须要 指定执行的地址范围 sed软件可以对单行或多行进行处理。如果在sed命令前面不指定地址范围,那么默认会匹配所有行。 用法:n1[,n2]{sed-commands} sed-commands就是上面的函数 地址用逗号分隔的,n1,n2可以用数字、正则表达式、或二者的组合表示。 例子: 10{sed-commands} 对第10行操作 10,20{sed-commands} 对10到20行操作,包括第10,20行 10,+20{sed-commands} 对10到30(10+20)行操作,包括第10,30行 1~2{sed-commands} 对1,3,5,7,……行操作 10,${sed-commands} 对10到最后一行($代表最后一行)操作,包括第10行 /shnne/{sed-commands} 对匹配shnne的行操作 /shnne/,/Alex/{sed-commands} 对匹配shnne的行到匹配Alex的行操作 /shnne/,${sed-commands} 对匹配shnne的行到最后一行操作 /shnne/,10{sed-commands} 对匹配shnne的行到第10行操作,注意:如果前10行没有匹配到shnne,sed软件会显示10行以后的匹配shnne的行,如果有。 1,/Alex/{sed-commands} 对第1行到匹配Alex的行操作 /shnne/,+2{sed-commands} 对匹配shnne的行到其后的2行操作 例子: sed -n l file.txt 显示文件的特殊符号,是L不是1 sed -n '1,3p' /etc/passwd 打印1-3行 sed -n '1,$p' /etc/passwd 打印1-最后行 sed -n '/shnne/,$p' /etc/passwd 过滤shnne到最后一行 sed '2s#old#new#g' file.txt替换内容 2代表行号 find ./ -type f -name "*.txt"|xargs sed -i 's#boy#girl#g' 查找替换内容 sed -i 's#girl#boy#g' `find ./ -type f -name "*.txt"`查找替换内容 ls|sed -r 's#(.*)#mv \1 /tmp#g'|bash查找移动文件 sed = 1.txt |sed 'N;s#\n# #' 显示行号 sed -nr 's#(^[a-z]+)(:.*:)(/.*$)#\3\2\1#gp' /etc/passwd 第一个和最后一个对调 sed -nr 's#([^:]+)(:.*:)(/.*$)#\3\2\1#gp' /etc/passwd sed '1,3s#C#--&--#g' person.txt #→此处&等于C ls *.jpg|sed -r 's#(^.*)_finished.*#mv & \1.jpg#g'|bash &就代表前面匹配到的 sed -rn 's#^.*HTTP/1\.[10]" ([0-9]{3}) .*$#\1#gp' nginx.log 统计nginx访问日志log后面的状态码 sed 's#[a-z]#\u&#g' file.txt 把小写字母换成大写字母 sed 's#.##2' file.txt 删除文件每行的第二个字符,g是代表全部 sed -r 's#(.).(.*)#\1\2#g' file.txt 删除文件每行的第二个字符 sed -i "3a $(sed '1d' 1.txt |xargs|sed -r 's# #\\n#g')" 2.txt 把第一个文件中的第2、3行内容添加到第二个文件的第3行后面 sed -n '2,3p' 1.txt |xargs|sed -r 's# #\\n#g'|sed 's#.*#sed -i "3a &" 2.txt#g'|bash
关键词:Linux命令
<< 上一篇
下一篇 >>
网友留言(0 条)