如何用变量

时间:2017-10-12 22:49:16

标签: linux bash unix awk sed

我正在尝试使用一个列并通过一个echo命令来管道它。如果可能的话,我想将它保持在一行或尽可能高效地完成。在研究时,我发现我必须使用单引号来扩展变量并转义双引号。

以下是我的尝试:

awk -F ',' '{print $2}' file1.txt | while read line; do echo "<href=\"'${i}'\">'${i}'</a>"; done

但是,我一直得到的行数超过单行的输出。如果您知道如何捕获第4栏中的每一行,那将非常有用。

FILE1.TXT:

Hello,http://example1.com
Hello,http://example2.com
Hello,http://example3.com

期望的输出:

<href="http://example1.com">http://example1.com</a>
<href="http://example2.com">http://example2.com</a>
<href="http://example3.com">http://example3.com</a>

1 个答案:

答案 0 :(得分:1)

$ awk -F, '{printf "<href=\"%s\">%s</a>\n", $2, $2}' file
<href="http://example1.com">http://example1.com</a>
<href="http://example2.com">http://example2.com</a>
<href="http://example3.com">http://example3.com</a>

或稍微简短但不那么健壮:

$ sed 's/.*,\(.*\)/<href="\1">\1<\/a>/' file
<href="http://example1.com">http://example1.com</a>
<href="http://example2.com">http://example2.com</a>
<href="http://example3.com">http://example3.com</a>