首页 > 解决方案 > 如何在 unix 的现有文件中添加新列?

问题描述

我想在我的文件中添加两个新列:现有文件有 2 列:

ABCD,1234
QWER,3333
TTYY,2323
YYPP,1789

新文件:要添加 2 列(字段)。 --> 第三个字段应该与第一个字段具有相同的值。--> 第 4 个字段将始终具有相同的值 'XXXX'

ABCD,1234,ABCD,XXXX
QWER,3333,QWER,XXXX
TTYY,2323,TTYY,XXXX
YYPP,1789,YYPP,XXXX

请帮忙。谢谢。

标签: unixfieldstring-concatenation

解决方案


您可以使用内部 shell 循环:

while IFS=, read first second; do
  echo "$first,$second,$first,XXXX"
done <your_file.dat >new_file.dat

awk在大多数情况下使用更快:

awk -F, -vOFS=, '{print $1,$2,$1,"XXXX"}' your_file.dat >new_file.dat
  • -F,告诉输入字段分隔符awk,
  • -vOFS=,告诉输出字段分隔符awk,

推荐阅读