1

我有一个 .csv 文件,我需要将第 5 列中的一个字符串替换为另一个字符串,列由 ',' 分隔,并且列中的每个元素都以 " 为界,如下所示。

"ID","CIRCLE","IP_ADDRESS","DESCRIPTION","Current_Status"
"6","local","127.0.0.1","localhost","3"
"7","RPOP1","10.10.10.1","router1","3"

我需要用字符串“Alive”替换第 5 列中的所有“3”元素。

我已经尝试过以下脚本,该脚本之前在 stackflow 中发布,但它不适用于我的情况

/usr/bin/awk -F, '$5 ~ /3/ { OFS= ","; $5 = "Alive"; }' /tmp/HOST_REPORT.csv

请提供一个简单的解决方案。谢谢你。

4

1 回答 1

4

但这不适用于我的情况

因为你没有选择打印它。尝试:

/usr/bin/awk -F, '$5 ~ /3/ { OFS= ","; $5 = "Alive"; }1' /tmp/HOST_REPORT.csv
                                                      ^

为了保留引号,您可以说:

/usr/bin/awk -F, '$5 ~ /3/ { OFS="," ; $5 = "\"Alive\""; }1' /tmp/HOST_REPORT.csv
于 2013-10-24T09:30:36.450 回答