linux上的文本命令行
date: 2016-05-08 18:54:37
linux上的文本处理主要是grep
,sed
,awk
等各类命令的组合。以下以例子说明。
首行
head -n 1 file
最后一行
tail -n 1 file
去掉首行(比如csv文件的文件头)
awk 'NR>1' file
排序
sort -n file
去重(去重前必须先排序)
sort -n file | uniq
分割csv文件,打印对应列,其中$0表示全行,$1表示第一列,$2表示第二列,等等。
awk -F "," '{print $0 $1 $2}'
各种命令之间可以通过|
管道连接,链式操作:
awk 'NR>1' file.csv | awk -F ',' '{print "\"" $9 "\","}' | sort -n | uniq
查找出现某个单词的行
grep word file.csv
也支持正则表达式,查找以word开头的行
grep '^word' file.csv
合并行
more file.csv | tr '\n' ' '