评估 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
一个参数,它是一个本身包含换行符的字符串。
我有一个 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
一个参数,它是一个本身包含换行符的字符串。