ファイルを移動する必要があります。
入力ファイル:
1/1/1111
1
2
3
4
2/2/2222
5
6
7
8
出力:
1/1/1111 1 2 3 4
2/2/2222 5 6 7 8
答え1
xargsはどうですか?
xargs -n5 < input_file
それとも
awk '{a=(NR%6==0)?"":a$0" ";if(NR%6==5)print a}' inp
答え2
存在するperl
perl -lp00e 's/\n/ /g' your_file
説明する
l
:処理中の現在のレコードから入力レコード区切り文字を削除し、印刷された各行の後に現在の出力レコード区切り記号(デフォルトは改行)を追加します。-p
:ファイルレコードをレコードごとに操作し、処理後に現在のレコードを印刷します。-00
:レコード区切り文字が2つ以上あることを示します。続けて改行文字-e
$_
:ファイルから現在読み込まれているレコードをデフォルト変数()に設定しながら、次の文字列をコードとして実行します。s/\n/ /g
:現在のレコードで見つかったすべての改行文字を空白に置き換えます(g
修飾子は置換が「グローバル」であることを確認します)。
答え3
そしてsed
:
$ sed -e '
:1
$!N
/\n$/{
P
d
}
s/\n/ /
t1
' <file
答え4
同じ形式ですか(例:ブロックあたり6行)?その場合、paste
最も簡単な方法は次のとおりです(例:6つのダッシュ)。
paste - - - - - - < file
タブの代わりにスペースが必要な場合は、以下を追加してください。-d' '