シェルスクリプトに新しい行を追加する方法

シェルスクリプトに新しい行を追加する方法

私は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"

これにより、行の末尾に改行文字が追加されます。

お役に立てば幸いです。

関連情報