高级命令行文本处理cut,sed,awk

来源:互联网 发布:千牛首页的店铺数据 编辑:程序博客网 时间:2024/05/21 17:56

cut

echo $PATH#会输出设置的环境变量的值/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/jdk1.8.0_144/bin:/opt/hadoop-2.8.1/bin:/root/binecho $PATH | cut -d ':' -f 5 #以冒号分割取第五个/opt/jdk1.8.0_144/bin  #输出的值 echo $PATH的值作为参数传递给cut执行echo $PATH | cut -d ':' -f 3,5 取第三个和第五个echo $PATH | cut -d ':' -f 3-   取三往后的echo $PATH | cut -d ':' -f 1-3  取1-3echo $PATH | cut -d ':' -f 1-3,5 取1-3和第五个

cut -d ‘分隔符’ -f fields 用于所有特定分隔符
cut -c 字符区间 用于排列整齐的区间

sort 排序

cat /etc/passwd | sort  会讲文本排序,每一行的首字母cat /etc/passwd | sort -t ':' -k 3 按冒号分割的第三列来排序(会按照字符串排序)cat /etc/passwd | sort -t ':' -k 3nr r表示的是倒叙排cat /etc/passwd | sort -t ':' -k 6.2,6.4 -k 1r 按第六列的第2个和第四个字符来排序cat /etc/passwd | sort -t ':' -k 6.2,6.4 -k 1r -u  u表示的是去重

sed

sed '2d' file1 去掉file1文件的第二行sed -i '2d' file1 去掉file1文件第二行,并且把修改后的结果写入文件(一般不要修改,要复制写)sed '2d,$d' file1 删除文件file1的第二行到结尾行sed '$d' file1   删除file1文件的最后一行 sed 's/test/mytest/g' file1 把file1文件中的所有test替换成mytest,如果没有g则只有每行第一个test替换成mytestsed 's/^test/mytest/g' file1   替换以test开头的sed 's/^test/&mytest/' file1  在以test开头的后面加上mytest &表示的是后面加上sed -n 's/\(love\)able/\1laok/p' file1 讲loveable替换成了lovelaok love不替换, n,p一起使用表示只打印那些花生替换的行

sed命令非常多,这里只是列举比较常用的,在使用的可以有使用到的要查看帮助

awk

last -n 5  输出最近登陆的5个人的信息last -n 5 |awk '{print $1}' #awk默认分隔符是空格或tabcat /etc/passwd |awk -F ':' '{print $1}'  指定分隔符打印
阅读全文
0 0
原创粉丝点击