shell/提取排序

列提取grep针对行,cut针对列

cut [选项] 文件名 //提取列
-f 列号    //指定列号提取 -d “”    //指定分隔符(默认只能提取制表符tab :需指定
例:
cut
-f 13 -d “:” /etc/passwd        //提取1和3列 grep '/bin/bash' /etc/passwd |grep -v "root"| cut -f 1 -d ":"  //提取普通用户名

 

awk‘{}’ 文件名        //提取列(针对分隔符为多个空格)
BEGIN{FS=””}        //FS指定分隔符,BEGIN为优先,END为最后
{print $1 \t}    //指定输出内容 $1为第一列

print ‘类型和格式’ 内容            //输出内容
类型    ‘%s’         输出字符串
‘%i’        输出整数
‘%8.2’    输出浮点数,8位数,2位小数
格式
\n换行
\t    tab键

例:

 awk '{print $1 "\t"$2}' ./ss

 awk‘{}’ 文件名

 awk‘{FS=}{print}’

 df -h | grep 'sda2'| awk '{print $5}'|cut -d "%" -f 1

 

字符串替换

 

sed
sed  ‘s/旧字符/新字符/g’  文件名        //替换输出,不改变原文件
sed  ‘3s/旧字符/新字符/g’ 文件名        //只替换单独一行
sed  -i ‘s/旧/新’                     //-i直接写入源文件,不输出(不显示)

 

 

排序

 

sort -t ":" -n -k 3,3 /etc/passwd
-t    指定分隔符
-n    数值,默认字符串
-k    指定以那一列进行排序
-f    忽略大小写
-r    反向排序(大到小)

例:sort -n -t ":" -k 3,3 /etc/passwd //只按第三列排序,-n指定为数值排序

 

转载于:https://www.cnblogs.com/vgzihs/p/8796389.html

你可能感兴趣的:(shell,awk)