awk+;更改列值并保留双引号
我有以下数据:awk+;更改列值并保留双引号,awk,Awk,我有以下数据: $ head test "Rec Open Date","MSISDN","IMEI" "2015-01-04",100,200 "2015-01-04",100,200 "2015-01-04",100,200 "2015-01-04",100,200 "2015-01-04",100,200 "2015-01-04",100,200 "2015-01-04",100,200 "2015-01-04",100,200 "2015-01-04",100,200 我可以使用此命令
$ head test
"Rec Open Date","MSISDN","IMEI"
"2015-01-04",100,200
"2015-01-04",100,200
"2015-01-04",100,200
"2015-01-04",100,200
"2015-01-04",100,200
"2015-01-04",100,200
"2015-01-04",100,200
"2015-01-04",100,200
"2015-01-04",100,200
我可以使用此命令更改第一列的值:
$ awk -F, 'NR>1{$1="2015-01-05"}1' OFS=, test > tmpfile && mv tmpfile test
有了这个命令,我松开了双引号,我想保留双引号。是否可以修改此命令以实现此目的
$ head test
"Rec Open Date","MSISDN","IMEI"
2015-01-05,100,200
2015-01-05,100,200
2015-01-05,100,200
2015-01-05,100,200
2015-01-05,100,200
2015-01-05,100,200
2015-01-05,100,200
2015-01-05,100,200
2015-01-05,100,200
来自GNU Awk用户指南 \“文本双引号(仅字符串常量需要)。此 当您想要写入一个字符串常量 包含双引号。因为字符串由双引号分隔 引号,则需要在中转义字符串中的引号 命令awk继续处理字符串的其余部分 这并不是说您正在“丢失”它们,而是事实上,
$1
最初是“某物”
,您将其替换为另一件事
。由于这件另一件事
是一个字符串,您可以使用双引号将其记下。因此,要恢复双引号,您需要在进行替换时进行指示
这可能更干净:
awk -v new='"2015-01-05"' 'BEGIN {FS=OFS=","} NR>1{$1=new}1' file
^^^^^^^^^^^^^^^^^^^^^ ^
|---------------------------------------------|
we provide the var ............... and we replace with it
surrounded by "
谢谢,还有所有的细节
awk -v new='"2015-01-05"' 'BEGIN {FS=OFS=","} NR>1{$1=new}1' file
^^^^^^^^^^^^^^^^^^^^^ ^
|---------------------------------------------|
we provide the var ............... and we replace with it
surrounded by "