viでファイルの内容を編集するには?

viでファイルの内容を編集するには?

次の内容を含むテキストファイルがあります(実際のファイルには数千行が含まれています)。

abcd
xyas
sasss
jddks
asa
sasa
lkkkss
asasd

次の形式で出力したい。

abcd xyas sasss jddks
asa sasa lkkkss asasd

どうすればいいですか?

答え1

4行すべてを1つに連結するには、再帰マクロを使用します。

ggqaqqa4Jj@aq@a

説明する:

  • ggファイルの先頭に移動
  • qaqレジスタに以前に保存されたマクロをすべて削除します。a
  • qaレジスタからマクロ書き込みを開始a
  • 4J4行を1行にマージ
  • j1行下に移動
  • @aマクロ自体をレジスタからa呼び出すようにしてください。
  • q録音を停止
  • @aレジスタからマクロを呼び出すaと、完了するまでファイル処理が続行されます。

Perlの代替

perl -ni -e 'chomp;print $_, $.%4? " ":"\n"' your_file

引用する

関連情報