列提取(grep针对行,cut针对列)
cut [选项] 文件名 //提取列
-f 列号 //指定列号提取 -d “” //指定分隔符(默认只能提取制表符tab :需指定)
例:
cut -f 1,3 -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指定为数值排序