Linux shell操作csv文件

awk

抽取csv的某列:

awk -F '","' -v OFS=',' '{print $5,$4,$6,$7 }' a.csv > a1

抽取f1的col 1, f2的col 2,输出。
缺点:需要将f1的col 1先全部读入内存,若f1很大,耗内存,而且不知道数组a的结构。

awk -F '","' -v OFS=',' 'NR==FNR{a[NR]=$1;next} {print a[FNR],$2}' f1 f2

对文件第n行的操作

删除文件 f 的第1行(比sed快很多很多):

tail -n +2 f> f.tmp && mv f.tmp  f

打印文件 f 的第 19103 行:

sed "19103q;d" f

猜你喜欢

转载自www.cnblogs.com/like1tree/p/9076965.html
今日推荐