我想在第二行开始的每一行末尾添加一个字符串到文件。
这是我的文件budget.txt
id,budget
d4385ff7-247f-407a-97c6-366d8128c6c7,
50548d0a-257c-44f5-b175-2e7efa53dc35,
e15965cf-ffc1-40ae-94c4-b450ab190233,
b9286b97-2575-4c98-bd24-1393d5309e76,
我期望的输出如下。我想从第二行开始添加字符串“ True”。
id,budget
d4385ff7-247f-407a-97c6-366d8128c6c7,True
50548d0a-257c-44f5-b175-2e7efa53dc35,True
e15965cf-ffc1-40ae-94c4-b450ab190233,True
b9286b97-2575-4c98-bd24-1393d5309e76,True
最短的bash命令可能是什么。 非常感谢 感谢您的帮助
答案 0 :(得分:3)
在运行以下命令之前,请确保在文件上运行dos2unix budget.txt
,通常.txt
文件起源于Windows,因此行尾不同。
awk 'NR>1{$0=$0"True"}1' file
id,budget
d4385ff7-247f-407a-97c6-366d8128c6c7,True
50548d0a-257c-44f5-b175-2e7efa53dc35,True
e15965cf-ffc1-40ae-94c4-b450ab190233,True
b9286b97-2575-4c98-bd24-1393d5309e76,True
此处,NR
是记录数,默认情况下,awk
记录与行相同。因此,如果您执行NR>1
,它将告诉awk
在行号大于1的{..}
内执行操作。
或使用sed
,在此将行$
的结尾替换为True
:
sed '2,$s/$/True/' file
id,budget
d4385ff7-247f-407a-97c6-366d8128c6c7,True
50548d0a-257c-44f5-b175-2e7efa53dc35,True
e15965cf-ffc1-40ae-94c4-b450ab190233,True
b9286b97-2575-4c98-bd24-1393d5309e76,True