评估 awk 并保留行

evaluate awk and keep lines

我有一个 txt 文件,里面有这样的数据:

string1,string2,string3,string4,string5

我想将字符串 3 的 awk 分配给变量 dc,例如:

dc=$(awk -F',' '{print }' file)

但是当我用 $dc 评估 dc 以查看每行的输出时,而不是 space 分隔。

现在有了:echo $dc,我看到了:

string3 string3 string3 string3 string3 string3 string3

我想看:

string3
string3
string3
string3

与 awk 无关,您只需要在 $dc:

周围加上引号
$ cat x
a
b
c

$ dc=$(cat x)

$ echo $dc
a b c

$ echo "$dc"
a
b
c

我的理解是,如果没有引号,您将给出 echo 一个由空格分隔的参数列表(换句话说,这些参数中的 none 包含一个换行符)。使用引号,你给 echo 一个参数,它是一个本身包含换行符的字符串。