我正在使用 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"
这会在行尾添加换行符。
希望能帮助到你。