Linux的文件内容处理命令
1、tar的命令
$ tar -cvf example.tar a.txt b.txt
$ tar -tf example.tar
$ tar -xvf example.tar
$ tar -xvf example.tar -C /tmp
-c 创建归档文件
-x 释放归档文件
-t 查看归档文件或压缩文件
-f 指定要归档、压缩或查看的文件的名称
-v 显示命令的执行过程
$ tar -cvzf example.tar.gz a b dir0/
$ tar -xzvf example.tar.gz
$ tar -xzvf example.tar.gz -C /tmp
$ tar cjvf example.tar.bz2 a b dir0/
$ tar xjvf example.tar.bz2
$ tar -xjvf example.tar.bz2 -C /tmp
$ xz -d linux.tar.xz
$ zip car218_e01p.zip ./*
$ unzip mypackage.zip -d /opt
$ zip -p -r admin.zip *
2、sort、uniq、wc的命令
$ uniq file
$ sort file | uniq
$ wc file
$ wc file -w
$ wc file1 file2
3、去掉多余空行
$ grep -v '^$' rumenz.txt
$ sed '/^$/d' rumenz.txt
$ awk '!/^$/' rumenz.txt
$ cat rumenz.txt | tr -s '\n'
$ vim rumenz.txt:g/^$/d
4、awk的使用
$ awk 'NR==1 {print $0} NF==5 { print $1}' ifc.txt
$ awk '条件1 {动作1} 条件2 {动作2} ……' file
$ awk ' {print $1,$5}' ifc.txt
$ awk '{printf "%-10s:%-2d\n",$1,$5}' ifc.txt
$ awk '$5==11 && $6>=90 {print $0}' ifc.txt
$ awk 'NR==1 || $6>=90 { print }' ifc.txt
$ awk 'BEGIN { FS=":"} {print $1}' ifc.txt
awk ‘BEGIN{操作} 条件{print 语句}’ file
awk 'BEGIN{FS=":";print"----"} $1~"r..t"{print $1} END{print "--------"}' /etc/passwd
$ awk -F: '{print $1}' ifc.txt
$ awk -F'[\t;:]' '{print $1}' ifc.txt
$ awk '$0~/BLUE/ {print}' grade.txt
$ awk '$0!~/GREEN.*/ {print}' grade.txt
$ awk '{print > $5}' grade.txt
$ awk '{print $1, $6 > $5}' grade.txt
$ awk '{ if($4~/BLUE.*|BLACK/) print > "high.txt"; else if($4~/Yellow|[Gg]reen/) print > "midle.txt"; else print > "low.txt"}' grade.txt
$ awk '{sum+=$4;print $4} END{print sum}' grade.txt
$ awk 'NR!=1 {a[$4]++;} END{for (i in a) print i","a[i];}' grade.txt
BEGIN{
math=0
english=0
}
{
if(NR==1)
{
print $0
printf "=============="
print "==============="
}
else
{
math+=$4
english+=$5
print $0
}
}
END{
printf "====================="
print "======================"
print "Average:\t math=" math/NR "\tenglish=" english/NR
}
$ awk -f kk.awk grade.txt
5、正则表达式的特殊字符
$ grep 'apple' example.txt -n
$ grep '[^ ]*ing' example.txt -nE
$ grep '\<is\>' example.txt -nE
$ grep '^\$.{2}$' example.txt -nE
6、sed的命令(流式编译器的简写)
$ sed "s/-year/years/" people.txt
$ sed "2s/-year/years/" people.txt
$ sed "2,5s/-year/years/" people.txt
$ sed -i "2s/-year/years/" people.txt
$ sed "s/s/S/g" people.txt
$ sed "s/s/S/2" people.txt
$ sed "s/s/S/2g" people.txt
$ sed 's/-year/years/; 3,$s/.$//' people.txt
$ sed -e 's/-year/years/' -e '3,$s/.$//' people.txt
$ sed "s/is/[&]/" people.txt
$ sed 'N;s/is/IS/' people.txt
$ sed '3i x' people.txt
$ sed '2a x' people.txt
$ sed '1,4a x' people.txt
$ sed '/US/a x' people.txt
$ sed "2c ok" people.txt
$ sed '2d' people.txt
$ sed '/US/d' people.txt
$ sed '/\<he\>/d' people.txt
$ sed '/Chen/p' people.txt -n
$ sed '/Chen/, /Lau/p' people.txt -n
$ sed '3, /UK/p' people.txt -n
$ sed '/UK/,6p' people.txt -n
$ sed '/US/,+2p' people.txt -n
$ sed '{/he/{/18/p}}' people.txt -n