在后台捣鼓各种文本,积累了不少有用有趣的文本处理命令,有些博大精神,有些功能单一实用,真是什么都有。谁用谁知道!
简单实用系
head – 输出文件的开头若干行
tail – 输出文件的末尾若干行
tail -r 倒序输出文本(reverse),最后一行最先输出,以此类推
cat – concatenate,文件拼接
sort – 文本排序,或检查是否已排好序
uniq – unique,输出重复或不重复的行(输入需排好序)
rev – reverse,将每一行倒序输出(如 hello world! 变成 !dlrow olleh)
yes – 一直输出’y’(或任何东西)
seq – sequence,输出数字序列
nl – numbering lines,给每一行开头加上行号
wc – word count,统计文件行数、单词数、字符数
paste – 按行拼接文件
cut – 纵向分割,输出文件的某几列
tr – translate characters
高端进阶系
grep – 字符串查找
join – 类似SQL的join,join两个文件的列
diff – difference,比较两个文件,输出有差异的地方
iconv – 字符编码转换
博大精深系
sed – stream editor 按行处理文本,
awk – 文本处理神器,这篇文章入门甚好 ——酷壳《AWK简明教程》
必备配件
管道
重定向
xargs – 在管道后方,将上个命令的输出内容作为参数传给后面的命令
学会用这三样来组合其他命令,基本就可领会到UNIX的精髓了:Keep it simple, stupid. 每个命令完成一个小的功能,联合起来就能无比强大
正则表达式
文本处理全靠它