我有一个包含以下内容的txt文件:
name space valid date1 date2
abc mon yes 2022-10-10 2022-10-10
def tue yes 2022-10-10 2022-10-10
ghi wed yes 2022-10-10 2022-10-10
jkl thu yes 2022-10-10 2022-10-10我需要在文件的第四个位置添加一个列,其中包含标题"location“和内容,如下所示。
name space valid location date1 date2
abc mon yes newyork 2022-10-10 2022-10-10
def tue yes newyork 2022-10-10 2022-10-10
ghi wed yes newyork 2022-10-10 2022-10-10
jkl thu yes newyork 2022-10-10 2022-10-10有没有任何方法可以使用一个Linux命令,如sed、awk?
我试过了,但没有用:
awk 'BEGIN {FS=OFS=","} NR==1{$0="name, space, valid, location, date1, date2"} NR>1{$3=sprintf("\t,%s",$3)}1' values.txt任何帮助都是appreciated.Thank你!
发布于 2022-08-11 15:02:13
您可以使用此awk解决方案:
awk 'BEGIN {FS=OFS="\t"}
{$3 = $3 OFS (NR == 1 ? "location" : "newyork")} 1' file
name space valid location date1 date2
abc mon yes newyork 2022-10-10 2022-10-10
def tue yes newyork 2022-10-10 2022-10-10
ghi wed yes newyork 2022-10-10 2022-10-10
jkl thu yes newyork 2022-10-10 2022-10-10PS:如果您的所有行都以制表符空间开头,那么在上面的命令中使用$4而不是$3,因为第一列将为空。
awk 'BEGIN {FS=OFS="\t"}
{$4 = $4 OFS (NR == 1 ? "location" : "newyork")} 1' file
name space valid location date1 date2
abc mon yes newyork 2022-10-10 2022-10-10
def tue yes newyork 2022-10-10 2022-10-10
ghi wed yes newyork 2022-10-10 2022-10-10
jkl thu yes newyork 2022-10-10 2022-10-10https://stackoverflow.com/questions/73322818
复制相似问题