我感兴趣的是能够在我的 csv 文件中添加一个没有值的空列,即一个空格,后跟一个选项卡。我有可以添加一列的工作代码,但我不明白如何用空格后跟制表符填充它,因为我试图将其插入两个已经存在的列 $4
和 之间$5
跨越 10 万行。
我的代码
cat file | NR==1 {print $0,"Ref"; next}
示例输入文件
Position Food Age Occup Loc Avg
very stable eggs 27 busy out 100%
预期输出文件
Position Food Age Occup Ref Loc Avg
very stable eggs 27 busy out 100%
简单地说,我正在尝试创建一个在大约 100k 行的范围内仍然以制表符分隔的列。谢谢!我知道 sed
也可能有效。
最佳答案
awk 'BEGIN{FS=OFS="\t"} {$5=(NR>1 ? "" : "Ref") OFS $5} 1'
或者如果您出于某种原因确实希望在非标题行的“Ref”列中使用空白字符:
awk 'BEGIN{FS=OFS="\t"} {$5=(NR>1 ? " " : "Ref") OFS $5} 1'
例如:
$ cat file
Position Food Age Occup Loc Avg
very stable eggs 27 busy out 100%
$ awk 'BEGIN{FS=OFS="\t"} {$5=(NR>1 ? "" : "Ref") OFS $5} 1' file
Position Food Age Occup Ref Loc Avg
very stable eggs 27 busy out 100%
关于parsing - 使用 awk 在 $4 和 $5 之间添加一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51681331/