-
一、a 命令 #新增加一行,在所选行的下面新增一行,并输入内容 1. 命令格式:sed '行号+a命令+需要增加的内容' 2. 例如:nl passwd | sed '5a======' #在第5行的下面新增一行,并写入======这些内容 3. 例如:nl passwd | sed '1,5a======' #在第1-5行每一行下面都增加一行并写入同样的内容 二、i 命令 #新插入一行,在所选行的上面插入一行,并输入内容 1. 命令格式:sed '行号+i命令+需要插入的内容' 2. 例如:nl passwd | sed '5i======' #在第5行的上面插入一行,并写入======这些内容 3. 例如:nl passwd | sed '1,5i======' #在第1-5行每一行上面都插入一行并写入同样的内容 三、c 命令 #替换一行,将所选定的行的内容替换成需要替换的内容 1. 命令格式:sed '行号+c命令+需要替换的内容' 2. 例如:nl passwd | sed '5c======' #将第5行的内容替换成======这些内容 3. 例如:nl passwd | sed '1,5c======' #将1-5行整体的内容都替换成======这些内容 四、d 命令 #删除一行,将所选行的内容全部删除 1. 命令格式:sed '行号+d命令+需要替换的内容' 2. 例如:nl passwd | sed '5d======' #将第5行的内容全部删除 五、案例一:优化服务器配置 1. 目标:在SSH的配置文件中加入相应的文本: Port 52113 PermitRootLogin no PerminEmptyPasswords no 2. 操作命令:sed '$a \ port 52113 \n permitrootlogin no' ssh_config #在文本尾部的下面增加两行,并写入相关内容($美刀符号定位文本的尾部) 六、案例二:文本处理 1. 目标:删除文本中的空行 2. 操作命令:sed '/^$/d' all.txt #删除文本中的空行查看全部
-
一、sed文本处理过程 1. 正则表达式选定文本调用sed操作命令进行处理 二、sed的格式 1. 命令行格式 1.1 sed [options] 'command' file(s) 1.1.1 options:-e ; -n 1.1.2 command:行定位(正则)+sed命令(操作) 1.1.3 例如:sed -n '/root/p' 1.1.4 例如:sed -e '10,20d' -e 's/false/true/g' 2. 脚本格式 2.1 sed -f scriptfile file(s)查看全部
-
一、任意字符串的表示 ".*" #匹配零次或多次任意字符 1. 例如:"^r.*" #匹配r开头后面有任意多个字符的行 2. 例如:"m.*c" #匹配m开头中间有任意多个字符,c结尾的字符串 3. 注意 m.*c与m..c的区别 二、逻辑字符 "|" #表示逻辑或 1. 例如:"bin/(false|true)" #匹配bin/false或者bin/true查看全部
-
一、字符串 #将多个具体的字符组合起来 1. "root" #匹配root字符串 2. "1000" #匹配1000字符串 3. "m..c" #匹配m开头、中间有两个任意字符、c结尾的字符串。 4. "[a-z][a-z]" #匹配两个在小写字母a-z这个范围的字符串 5. "[0-9][0-9]" #匹配两个在数字0-9这个范围的字符串 6. 正则表达式会最大化的按照设定条件匹配,只要符合条件的结果都会匹配,在写正则表达式的时候要尽可能的给定一些限制条件,保证我们写出来的正则相对准确 二、字符串组合:通过重复、逻辑的方式将字符串拼接组合成表达式 1. 重复:在正则表达式中有三个字符可以表达重复,分别是 * + ? 1.1 * #零次或多次匹配前面的字符或子表达式 1.1.1 例如:se* #零次或多次匹配前面的e字符,可以匹配s、se、see、seeeeee.... 1.2 + #一次或多次匹配前面的字符或子表达式 1.2.1 例如:se+ #一次或多次匹配前面的e字符,可以匹配se、see、seeeeee.... 1.3 ? #零次或者一次匹配前面的字符或子表达式 1.3.1 例如:se? #零次或一次匹配前面的e字符,可以匹配s、se 1.4 ( ) #将多个字符或字符串组合成一个子表达式 1.4.1 例如:(se)* #零次或多次匹配前面的se字符,可以匹配 任意不包含se的字符或字符串甚至空行、se、sesesese 1.4.2 例如:(se)+ #零次或多次匹配前面的se字符,可以匹配 se、sesesese 1.4.3 例如:(se)? #零次或多次匹配前面的se字符,可以匹配 任意不包含se的字符或字符串甚至空行、se 2. 重复特定次数:{n,m} #n表示重复的最小次数,m代表重复的最大次数 2.1 所以前面的 *:等价于 {0,}、+:等价于{1,}、?:等价于{0,1} 2.2 例如:[0-9]{2,4} #匹配2-3位在数字0-9这个范围的数字查看全部
-
ifconfig eth0 | grep 'inet ' | sed -r 's/^.*r:([0-9\.]+).*$/\1/' 挑出ip地址查看全部
-
行定位 定位一行:x(数字) /pattern/ 定位几行:x,y(x到y这连续的几行) /pattern/,x /pattern1/,/pattern2/ x,y!(除去这连续行以外的行) 定位间隔几行:x~step(打印x行,及以step步进的行),如:1~2可以打印奇数行查看全部
-
awk内置参数应用
awk内置变量2
NR: 每行的记录号
NF: 字段数量变量
FILENAME: 正在处理的文件名
查看全部 -
awk内置参数应用
awk -F ':' '{print $1" "$3}' passwd
awk -F ':' '{print $1,$2}’ passwd
awk -F ':' '{print $1"\t"$2}’ passwd
查看全部 -
awk内置参数应用
查看全部 -
awk处理方式
awk一次处理一行内容
awk对每行可以切片处理
eg: awk '{print $1}' //输出首个单词
使用awk——格式
命令行格式:
eg: awk [options] 'command' file(s)
脚本格式
eg: awk -f awk-script-file file(s)
查看全部 -
一、正则表达单字符
1、字符
1.1 特定字符
某个具体的字符,如‘a’、‘3’等
1.2 范围内字符
单个字符[]:
数字字符:[0-9],[259]
grep '[0-9]' /etc/passwd
grep '[259]' /etc/passwd
小写字符:[a-z]
grep '[a-z]' /etc/passwd
大写字符:[A-Z]
grep '[A-Z]' /etc/passwd
反向字符^:取反[^0-9],[^0]
grep '[^0-9]' /etc/passwd
1.3 任意字符
代表任何衣蛾字符:'.'
grep 'ro.t' /etc/passwd
注意与'[.]' 和‘\.’的区别
查看全部 -
sed格式
查看全部 -
正则表达式总结
查看全部 -
匹配15或18位身份证号(支持带x的)
grep '^[1-9]\([0-9]\{13\}\|[0-9]\{16\}\)[0-9xX]$' a.txt
查看全部 -
mark:
查看全部
举报