Bash

使用 bash/sed 重新格式化元素列表

  • March 7, 2022

我有一個包含如下列表的 CSV 文件:

URL,Domain,anchor
https://example1.com,Example1,Category1

我需要將其重新格式化為 HTML,如下所示:

<li><a href="https://example1.com" title="Category1"> Example1 </a></li>

我一直在修補 sed 和 awk 一段時間,但沒有成功。到目前為止,我最好的方法是在之前插入第一個字元串https並從那里手動工作。所以我想知道是否有更好更快的方法來做到這一點。

我在測試文件中添加了一個額外的行,稱為eg.csv

URL,Domain,anchor
https://example1.com,Example1,Category1
https://unix.stackexchange.com/questions/693322/reformatting-a-list-of-elements-using-bash-sed,This question,Here

然後編寫了這個基本的 AWK 腳本:

#!/bin/bash
awk -F "," '
NR == 1 { next } # Ignore titles
 {
    printf( "<li><a href=\"%s\" title=\"%s\"> %s </a></li>\n",
      $1, $3, $2 )
 }
' <eg.csv

結果是:

$ ./fmt
<li><a href="https://example1.com" title="Category1"> Example1 </a></li>
<li><a href="https://unix.stackexchange.com/questions/693322/reformatting-a-list-of-elements-using-bash-sed" title="Here"> This question </a></li>

我希望能滿足您的需求。

引用自:https://unix.stackexchange.com/questions/693322