目录
(一)正则表达式
1.1正则表达式和通配符
在shell中一般:
- 正则表达式用来,包含匹配字符串
- 通配符用来,完全匹配文件名
1.2基础正则表达式
1.3实例
# 匹配所有内容
grep "a*" file1
#匹配a..的行
grep "aa*" file1
#[aeiou]其中一个字符的行
grep "[aeiou]" file1
#[^aeiou] 取反
#匹配连续出现3次a的行
grep "a\{3\}" file1
#匹配连续出现至少3次a的行
grep "a\{3,\}" file1
#匹配连续出现至少3次a, 至多5次
grep "a\{3,5\}"
(二)字符截取命令
1.1 cut字符提取命令
# 默认分割符为制表符\t
cut -f 2 file1
cut -f 2,3 file1
# 以:为分隔符
cut -d ":" -f 2 file
在处理空格的时候,不好使用
1.2 printf命令
# printf的输入 不能是文件也不能用管道符
printf "%s" $(cat file1)
1.3 awk命令
awk “条件1{执行1}条件2{执行2}” 文件
执行可以是语句或流程
df -h | awk '{print $5}' | cut -d "%" -f 1
#以fs(:)为分割,打印第5列
awk 'BEGIN{FS=":"} {print %5}' /etc/passwd
1.4 sed命令
sed是轻量级编辑器,可以对数据进行修改、添加、替换、删除等。
和vim只能对文件修改不同,它可以对流(另一个命令输出的结果),也可以对文件修改。
# 不加-n,屏幕会输出第二行和整个结果
df -h | sed -n '2p'
#删除2,3行
df -h | sed '2,3d'
#第二行后添加
df -h | sed '2a tian \ jia'
#加-i才会改变文件本身
#把file文件第二、三行的a替换成b
sed -i '2,3s/a/b/g' file