1.文本处理-echo
echo -e "\033[40;35m...."
背景颜色范围:40--49
40:黑 41:深红 42:绿
43:黄色 44:蓝色 45:紫色
46:深绿 47:百色
字体颜色范围:30-39
30:黑 31:红 32:绿
33:黄 34:蓝色 35:紫色
36:深绿 37:百色
eg:
echo -e "\033[40;35mhello word\033[0m"
2.文本处理-sort
sort [选项] 输入文件
-o 输出文件
-d 按字典顺序排序
-n 按数字大小输出
-r 按逆序输出排序结果
-k 指定分类是域上得数子分类
-t 域分隔符;用非空格或tab键分隔域
eg:
sort -k3 -n -r -t: /etc/passwd|more
3.文本处理-diff
diff[选项] 文件/目录 文件/目录
diff /etc/passwd /etc/passwd.bak
-q 仅显示有无差异,不显示详细的信息
-c 显示全部内文,并标出不同之处
-b 不检查空格字符的不同
-B 不检查空白行
-r 比较子目录中的文件
4.grep 选项
-n 在每行前显示编号
应用实例
a.设置大小写
#grep ‘[Tt]his‘ file1.txt
b.不匹配行首
#grep ‘^[^#]‘ file.txt //找出不是以#开头的字符字符串
c.匹配任意字符
#grep "s...n" file3.txt
s123n true
s34n false
注意:三个点三个字符
d.-v
grep -v "hello" file
搜索不含有"hello" 字符串的行
5.sed操作动作
s 替代操作
i 插入命令
a 附加命令
d 删除全部匹配的行
D 删除全部匹配的行
eg:
#sed -n ‘1,4 p‘ /etc/passwd 打印/etc/passwd的1到4行
#sed ‘/80/D‘ file.txt 删除全部匹配80的行
#sed ‘s/var/usr/g‘ file.txt 所有var用usr替换
#sed ‘50,$s/help/man/g‘ file.txt所有help用man替换
#sed "3i\\chengyaogen" log log文件的第三行前面插入chengyaogen
#sed "3a\\chengyaogen" log log文件的第三行后面插入chengyaogen
#sed "3d" log 删除log文件的第三行
6.awk格式
awk [选项] ‘awk脚本‘ 输入文件
-F fs使用fs作为输入记录的字段分隔符
-f filename 从文件filename读取awk_script
-v var=value 为awk_script设置变量
awk的内置变量
变量 功能 默认
FS 输入字段分隔符 空格或tab
RS 输入记录分隔符 换行
OFS 输出字段分隔符 空格或tab
ORS 输出记录分隔符 换行
NF 当前记录非空字段的编号 $NF 最后一列
NR 从所有文件读入的记录号 $NR 对应的行号
应用实例
#awk -F : ‘{print NR,$1,$2}‘ /etc/passwd
输出/etc/passwd的第一列、第二列并显示对应的行号
#awk -F : ‘{print NR,$1,$NF}‘ /etc/passwd
输出/etc/passwd的第一列,最后一列并显示对应的行号
#awk -F : ‘NR%10==5{print NR,$0}‘ /etc/passwd
输出行号对10 求余为5的一整行信息
#awk -F : ‘NR==8,NR==13{print NR,$0}‘ /etc/passwd
输出行号[8,13]的行的信息
#awk -F : ‘{if($3>50){print $1}}‘ /etc/passwd
linux 文本处理
原文:http://blog.csdn.net/morixinguan/article/details/51893567