情形:大批TSV文件(后缀名tsv)每行的字段用tab间隔。
需求:合并所有文件,但是得标识每行来自那个文件。
实行:
1.cd到文件所在目录下
2.执行
代码: 全选
for file in *.tsv ; do
cat "$file" | sed 's/^/ '"$file"'\t/'>>OUTPUT.tsv ;
done
用管道传递给sed进行行处理,引号里面参数意思是:替换(s/……/),行首(^)为文件名(‘“$file”’)加上tab间隔(\t)
之所以给每个$file又添加双引号是因为好多文件名里有空格,不加引号linux还以为它是两个文件,自然不行啦。
最后,再次祝福大伙儿马年吉祥啦。