shell命令四剑客grepawkcutsed
grep
grep
命令是Unix中用于文本搜索的工具,它能够接受正则表达式和通配符。也是日常开发调试中用的最多的 。用于处理每行的文本
grep "匹配文本/通配符" file1 file2... --color=auto #重点标记匹配grep -E "正则表达式" file
egrep "正则" file
grep -v #反向匹配
grep -c #统计匹配行数
grep -n #打印出匹配的行号
grep -o #唯一匹配
grep -l "匹配" file1 file2 #返回匹配的文件名
grep -R #递归匹配
grep -i #忽略大小写
grep -e "匹配1" -e "匹配2" #匹配多个样式
grep -f match.txt file1 #从match.txt文件读取匹配
sed
stream editor(流编辑器)的缩写,它是文本处理中非常重要的工具。能够完美地配合正则表达式使用。用于处理每行的文本
在text.tx中将old替换为new,s为开头,g为结束 , -i 为真正修改文件,不加为预修改
sed -i "s/old/new/g" text.txt
在text.txt中将第2行的old替换为new,s为开头,g为结束
sed -i "2s/old/new/g" text.txt
在text.txt中将所有行中的开头加入空格,s为开头,g为结束
sed ‘s/^/& /g’ text.txt
在第二行开头加个“test”,^匹配开始 &表示追加
sed "2s/^/&test/g" text.txt
在第二行末尾加个“test” ,$表示结尾
sed "2s/$/&test/g" test.txt
将text.txt中所有的逗号替换为换行
sed "s/,//g" text.txt
将text.txt中第一行,最后行打印
sed -n "1p,$p " text.txt
将text.txt中第1到第5行打印
sed -n "1,5p" text.txt
将text.txt中第一到最后行打印
sed -n "1,$p" text.txt
awk
awk
被设计用于数据流,用于处理每列的数据
打印第一列,倒数第二列,默认以空格分割(经测试 制表位tab 也可以支持)
awk "{print $1,$(NF-1)}" text.txt
以冒号分割,打印第1列,可以不加引号,
awk -F ":" "{print $1}" test.txt
#设置定界符awk -F: "{print $1}" /etc/passwd
awk "{FS=":"} {print $1}" /etc/passwd
awk "{FS=":"; print $1}" /etc/passwd
在打印的最后列前加前缀“test: ”
awk "{print "test: " $NF}" test.txt
在打印的每列后加后缀 “; ”
awk "{print $NF ";"}" test.txt
条件打印 -v 制定参数赋值
awk -v I="$i" "{if(I==$1) print $2}" test.txtawk "$1>10{print $1}" test.txt
cut
cut
是一个将文本按列进行切分的小工具,它也可以指定每列定界符。在cut的术语中,每列都是一个字段。用于处理每列
#制表符" " 是cut默认的定界符cut -d" " -f1 1.txt #-d指定分隔符,-f打印第几个字段
cut -f1,2,3 #打印1,2,3列
-c字符; -b字节;
cut -c 1-5 1.txt #打印1-5字符
cut -c -2 1.txt #打印前2个字符
cut -c 3- #打印第3个字符到行尾
以 :为分隔符,截取出/etc/passwd的第一列到第三列,冒号可以不加引号
cut -d : -f 1-3 /etc/passwd
以":"为分隔符,截取出/etc/passwd的第一列跟第三列,引号可以省略
cut -d ":" -f 1,3 /etc/passwd
参考链接:https://www.jianshu.com/p/70c390e3fa73
以上是 shell命令四剑客grepawkcutsed 的全部内容, 来源链接: utcz.com/z/511631.html