如何使用sed / awk替换逗号分隔的.csv文件中第n列/字段中的字符串/模式?

时间:2013-10-24 09:24:12

标签: csv sed awk

我有一个.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

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

1 个答案:

答案 0 :(得分: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