0

私のプログラムでは、スクリプト全体で追加するファイルの列ヘッダーを設定しようとしています。

ヘッダーの作成に使用する行は次のとおりです。

printf '%-10s' "csci" "csc" "Line #" "File Name" > "$1 3.txt"

これにより、必要に応じてヘッダーが作成されますが、次の行を追加しようとすると、次の行ではなくこの行の最後に追加されます。

ヘッダー作成行に改行を入れようとしてきたので、追加される次の行は空の行になりますが、改行を追加しようとするとすべて奇妙な結果 (または望ましくない結果) が得られます。

\n を次のように追加しようとしました: '%-10s\n'、これにより、ヘッダーが別々の行に表示されるだけになります(これは予想していましたが、とにかくこれを試してみる必要がありました)。

私はそれから試しました: printf '%-10s' "csci" "csc" "Line #" "File Name" "\n"> "$1 3.txt"、しかしこれは実際に改行を与えずに \n をそのまま出力しただけです。

それで、私の質問が今でも明らかでない場合、どうすればそこに改行を入れることができますか?

4

2 に答える 2

5

列を印刷した後にechoorステートメントを追加して、新しい行が追加されるようにします。printf

(printf '%-10s' "csci" "csc" "Line #" "File Name"; echo) > "$1 3.txt"
# or
(printf '%-10s' "csci" "csc" "Line #" "File Name"; printf '\n') > "$1 3.txt"

または行全体を定義し、最後にprintf追加します。\n

printf '%-10s %-10s %-10s %-10s\n' "csci" "csc" "Line #" "File Name" > "$1 3.txt"

これも機能するBashはずですが、新しい行の末尾に空白が追加されます。

printf '%-10s' "csci" "csc" "Line #" "File Name" $'\n' > "$1 3.txt"
于 2012-09-07T16:01:22.643 に答える
0

後で追加します。

echo >> "$1 3.txt"
于 2012-09-07T16:00:07.767 に答える