我有一个文件,其中包含如下所示的变量:
Favorite color of John:Blue
Favorite color of Cindy:Red
Favorite color of Greg:Orange
Favorite color of Gary:Red
Favorite color of Patty:White
Favorite color of Meg:Purple
Favorite color of Jason:Pink
如何通过指定行号来编写AWK命令以更改冒号后的文本?我不能以字符数或固定空格为基础,因为行的长度不同。冒号是对象和变量之间的静态分隔符。
到目前为止,我可以这样做: awk'NR == 5'variables.txt | awk -F“:”'{print $ 2}' 它甚至会回显现有变量。但是我该如何将文本更改为“绿色”一词?
答案 0 :(得分:2)
将awk的两个调用合并为一个:
awk -F: -v OFS=: 'NR==5 {$2 = "Green"} {print}' variables.txt
请注意,您需要同时设置 input 和 output 字段分隔符:当您分配给字段($2 = ...
)时,当前记录({ {1}})使用OFS变量进行重写。