处理用户给出的特定字段 bash
process specific field given by the user bash
所以用户给了我三个输入 ID COLUMN VALUE。我想用值替换行列中的字段。我试过像这样使用 awk
awk -F '|' -v COLUMN="$COLUMN" -v VALUE="$VALUE" '{if (FNR>1 && ID==) {$COLUMN=VALUE}}' $FILE
但我认为我在语法上做错了什么,我最终打印了整个文件而没有任何更改。
示例:
#id|lastName|firstName|gender|birthday|creationDate|locationIP|browserUsed
7696581400586|Silva|Manuel|male|1987-08-31|2011-06-07T15:47:05.863+0000|193.126.75.5|Firefox
7696581400608|Li|Jun|female|1983-08-11|2011-05-11T05:20:42.017+0000|27.129.140.209|Chrome
7696581402447|Calvert|Charles|male|1985-09-18|2011-05-27T06:57:05.070+0000|41.51.52.232|Internet Explorer
假设用户给我输入 7696581400608 2 Yung。因此,我在放置 id 7696581400608 的行中将字段 2 替换为名称 Yung。所以我把李换成容
你可以使用这个 awk:
awk -v id='7696581400608' -v col=2 -v val='Yung' 'BEGIN { FS=OFS="|" }
== id { $col = val } 1' file.csv
#id|lastName|firstName|gender|birthday|creationDate|locationIP|browserUsed
7696581400586|Silva|Manuel|male|1987-08-31|2011-06-07T15:47:05.863+0000|193.126.75.5|Firefox
7696581400608|Yung|Jun|female|1983-08-11|2011-05-11T05:20:42.017+0000|27.129.140.209|Chrome
7696581402447|Calvert|Charles|male|1985-09-18|2011-05-27T06:57:05.070+0000|41.51.52.232|Internet Explorer
所以用户给了我三个输入 ID COLUMN VALUE。我想用值替换行列中的字段。我试过像这样使用 awk
awk -F '|' -v COLUMN="$COLUMN" -v VALUE="$VALUE" '{if (FNR>1 && ID==) {$COLUMN=VALUE}}' $FILE
但我认为我在语法上做错了什么,我最终打印了整个文件而没有任何更改。
示例:
#id|lastName|firstName|gender|birthday|creationDate|locationIP|browserUsed
7696581400586|Silva|Manuel|male|1987-08-31|2011-06-07T15:47:05.863+0000|193.126.75.5|Firefox
7696581400608|Li|Jun|female|1983-08-11|2011-05-11T05:20:42.017+0000|27.129.140.209|Chrome
7696581402447|Calvert|Charles|male|1985-09-18|2011-05-27T06:57:05.070+0000|41.51.52.232|Internet Explorer
假设用户给我输入 7696581400608 2 Yung。因此,我在放置 id 7696581400608 的行中将字段 2 替换为名称 Yung。所以我把李换成容
你可以使用这个 awk:
awk -v id='7696581400608' -v col=2 -v val='Yung' 'BEGIN { FS=OFS="|" }
== id { $col = val } 1' file.csv
#id|lastName|firstName|gender|birthday|creationDate|locationIP|browserUsed
7696581400586|Silva|Manuel|male|1987-08-31|2011-06-07T15:47:05.863+0000|193.126.75.5|Firefox
7696581400608|Yung|Jun|female|1983-08-11|2011-05-11T05:20:42.017+0000|27.129.140.209|Chrome
7696581402447|Calvert|Charles|male|1985-09-18|2011-05-27T06:57:05.070+0000|41.51.52.232|Internet Explorer