您的位置:首页 > 运维架构 > Shell

SHELL:awk,sed,常用文本处理命令

2011-08-07 16:04 726 查看
awk:

awk ‘print{$1,$2}’ grade.txt 打印单独记录

awk ‘BEGIN print{“Name Belt/n-------------------------------”} print{$1”/t”$4} END {print “end-of-report”}’ grade.txt 打印报告头尾

awk ‘$4 ~ /48/ {print $0}’ grade.txt 匹配

awk ‘$4 == “48” {print $0}’ grade.txt 精确匹配

awk ‘$4 !~ /48/ {print $0}’ grade.txt 不匹配

awk ‘{if ($3 < $4) print $1}’ grade.txt 比较

awk ‘/[Gg]reen/’ grade.txt 匹配包含Green或green的行

awk ‘$1 ~ /^…a/’ grade.txt 第一列中的第四个字符为a

awk ‘$1 ~ /(Green | Blue)/’ grade.txt 第一列是Green或Blue的行

awk ‘/^48/’ grade.txt 以48开头的行

awk ‘{if ($1 == “hello”) $6 = $6-1; print $1,$6}’ grade.txt 修改域值

awk ‘tot += $6; END {print “Totle Number is : ”tot}’ grade.txt 统计

ls -l | awk ‘$1 ~ /^[^d]/ {print $9”/t”$5} {tot += $5} END {print “totle size is : ”tot” KB”}’ 打印文件名及其长度,并统计总长度

awk –F”:” ‘{OFS=”-”} {print NR,$1,$2,$3}’ grade.txt 输出分隔符,行号

===============================================================

sed:

sed –n `1-3p` quote.txt 打印1至3行

sed –n `/The/ p` quote.txt 只显示匹配The的行

sed –n `4, /The/ p` quote.txt 第四行匹配

sed –n `$p` quote.txt 最后一行

sed –e `/music/=` quote.txt 打印匹配的行号

echo “Mr Willam” | sed `s/Mr /& Bruce/g` 追加Mr Bruce Willam

echo “file” | sed `s/$/.doc/g` 增加扩展名file.doc

sed `s/old/new/` filename quote.txt 替换第一个

sed `s/old/new/4` quote.txt 替换第四个

sed `s//(.*/)old//1new/` quote.txt 替换最后一个

sed `/old1/s/old2/new/g` quote.txt 将出现old1的行中old2全部替换为new

sed `/old1/!s/old2/new/g` quote.txt 除了old1的行都替换

sed `1,6 s/old/new/` quote.txt 替换1至6行的第一个old

sed –n `/word/ !p` filename 显示文件中不带有word的行

sed `1,6 d` filename 删除1到6行

sed `/word/ !d` filename 删除除word的行

sed G filename 每一行增加空行

sed `/^$/d;G` filename 删除原有的空行,增加空行Sort:

sort –t: -r video.txt 逆序

sort –t: +3n video.txt 对第四个列按数值排序

sort –t: +1.2 video.txt 按第二列的第三个字符排序

sort –t: -k4 video.txt 第四个列

sort –t: -u video.txt 去除重复行

sort –t: -k4 –k1 video.txt 先以第四列,再以第一列

sort –t: +0 -2 +3 video.txt 先以第0域,忽略第二域(第三列),再以第三域

sort –t: -m v1.txt v2.txt 合并

===============================================================

uniq:

uniq –c myfile.txt 显示重复的数目

uniq –d myfile.txt 显示重复出现的行

uniq –n2 myfile.txt 只测试第二列

===============================================================

join:

join –j1 4 –j2 2 peers peers2 连接peers域4,匹配peers2域2

===============================================================

cut:

cut –d: -f1,3 pers 以:分割的第1,3列

===============================================================

paste:

paste –d: pas1 pas2 以:为分割粘贴为两列

===============================================================

split:

split -2 big.txt 按每两行进行分割
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: