首页 > 解决方案 > 将 html 标记插入 csv 文件中的特定列

问题描述

我试图修改 csv 文件中的一列 Csv 文件看起来像

"Name", "Gender", "Link"
"Josh", "Male", "https://url.com/josh"
"Samanta", "Female", "https://url.com/samanta"

主要任务:为所有链接添加 Html 标签。

csv 外观示例:

"Name", "Gender", "Link"
"Josh", "Male", "<a href="https://url.com/josh"/a>"
"Samanta", "Female", "<a href="https://url.com/samanta"/a>"

我不完全理解它在 awk 或 sed 中是如何工作的

提前致谢

标签: linuxbashcsvawksed

解决方案


使用 awk,这是一个解决方案:

cat text.csv | awk 'NR>1 && NF{ OFS=","; print $1 $2 "<a href=\"" $3 "\">" substr($1, 1, length($1)-1) "<a/>" }'

NR>1- 对于大于 1 的行号为真。

NF- 字段数,空行为 0/false。

OFS=","- 输出字段分隔符,以逗号分隔。

print- 你可以穿插$1变量"quoted strings"

substr()- 正如我使用<a>$1</a>的那样,链接有一个名称,我修剪了 awk 保留在$1变量中的尾随逗号。

awk&上的其他一些类似的 stackoverflow 链接csv,建议如下cutextract-specific-columns-from-delimited-file-using-awkhow-to-print-a-range-of-columns-in-a-csv-in- awk如何提取 csv 文件的一列


推荐阅读