如何在 shell 脚本中添加新行

如何在 shell 脚本中添加新行

我正在使用 rhel7 并尝试从 Shadow 打印我的输出,例如如下所示:

test1 !!
test2 !!
test3 *

我正在运行这个命令:

i=`cat /home/mydir/shadow1 |awk -F ':' '{print $1,$2}' `

当我这样做时echo $i,它将在 1 行中打印输出:

test !! test2 !! test3 *

谁能建议我应该如何修改我的'{print $1,$2}'以便它打印新行?

答案1

问题很清楚。这个问题可以通过不同的方式来解决。不确定意图是什么,但您可以使用以下示例:

while IFS=: read -r user stat _; do echo "$user" "$stat"; done < /etc/shadow

如果你想存储 awk 的整个输出,你可以使用这样的东西:

 var=$(awk -F: '{print $1,$2}' /etc/shadow)

然后您只需要echo "$var"打印结果即可。

答案2

你的 awk print-statement 一切都很好。

使用引号进行回显:

echo "$i"

答案3

代替回声$i,尝试使用:

echo -e "$i\n"

这会在行尾添加换行符。

希望能帮助到你。

相关内容