我有一个包含以下内容的 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
Run Code Online (Sandbox Code Playgroud)
我需要在文件的第四个位置添加一列,其中包含标题“位置”和内容,如下所示。
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
Run Code Online (Sandbox Code Playgroud)
有没有办法使用 sed、awk 等 Linux 命令来做到这一点?
我尝试了这个但没有成功:
awk 'BEGIN {FS=OFS=","} NR==1{$0="name, space, valid, location, date1, date2"} NR>1{$3=sprintf("\t,%s",$3)}1' values.txt
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。谢谢!
您可以使用这个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-10
Run Code Online (Sandbox Code Playgroud)
PS:如果所有行都以制表符空格开头,则在上面的命令中使用$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-10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |