sed学习笔记

###########################sed命令拼接

\1 打印源数据

ls|awk -F '.' '{print $1}'|sed -r 's#(.*)#\1.jpg#g'

 

sed

 

增:

(单行)

a 追加 sed '2a 106,dandan,CSO' oldboy.txt 在第二行追加一行

i 插入 sed '2i 106,dandan,CSO' oldboy.txt 在第二行插入一行

(多行)

sed '2a 106,dandan,CSO\n107,xiaxia,CCO' oldboy.txt

 

删:

d 删除 sed '2d' oldboy.txt 删除第二行 (默认不加删除全部)

sed '1~2' oldboy.txt 删除1,3,5,7行,2为步长

sed '1,2d' oldboy.txt 删除1到2行

 

改:

c 按行替换 sed '2c 106,dandan,CSO' oldboy.txt 替换第二行

s 文本替换 sed -i 's###g' oldboy.txt ///#为定界符

g 全局替换的标记

 

查:

p 打印,必须与-n配合使用

 

其他:

w 另存---将模式空间中内容另存到一个文件中:sed 'w test.txt' test1.txt(将test1.txt另存为test.txt)

s 替换,一般与g配合,g是全局标志

i 忽略大小写:sed 's#alex#NB#ig' test.txt

e 使文件中的文本变为可执行,如:sed 's#^#ls -l #e' test.txt (test.txt中,可以放文件的绝对路径)

l 打印不可见字符 sed -n 'l' test.txt

y 作用与tr替换类似 sed 'y#abc#ABC#' test.txt

q 退出sed sed '3q' test.txt 打印三行后退出

r 合并文件 sed 'r test1.txt' test.txt 将test1里的文件合并到test里的每一行下面

n 清空模式空间内容,读取下一行

 

 

 

 

grep取文件中IP地址

grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' file.txt

 

grep -E -o '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' file.txt

 

 

参数

-r 启用正则表达式

-i 修改文件 (可用作备份,如:sed -i.jpg 's#123#abc#g' 1.txt)

-n 取消默认输出

 

 

特殊符号{}

sed -n '2,4{p;=}' test.txt --显示行号

 

posted @ 2022-11-01 10:46  yeahzxw  阅读(50)  评论(0)    收藏  举报