# join pairs of lines side-by-side (like "paste")
sed '$!N;s/\n/ /'
上記のスクリプトは、sourceforgeで見つかったsed one-linersの素晴らしいリストに由来しています。なぜこのsedコマンドはbashスクリプト内で何もしませんが、外部で動作しますか?
私はそれをa bashスクリプトで使用したいと思いますが、スクリプト内で使用すると効果がありません。スクリプトの出力をパイプでパイプすると、説明したように、行のペアを並行して結合します。
一部の文字はエスケープする必要がありますが、bashスクリプト内で動作させるにはどの文字をエスケープする必要があるのかを「見る」ことができません。
ヨロシクおねがいしょう!その後
..
#!/bin/bash
# numbers.sh
for X in 1 2 3 4 5 6 7 8 9 0
do
echo $X
done
このスクリプトを使用:
#!/bin/bash
./numbers.sh | sed '$!N;s/\n/ /'
が正常に動作します。..
1 2
3 4
5 6
7 8
9 0
私はこの上で私の考えを再編成させてください。..
後で...
スクリプトで論理エラーが見つかりました。
私はbashを使用する理由はありませんでしたが、私は今、それがうまく動作することを確認しました。これは、スクリプトそのものに固有のものでなければなりません。 –
catの役に立たない使用。 'sed '$!N; s/\ n//' etc/crontab'。 – Jens