偶数行を奇数行の先頭に移動する方法を探しています。

偶数行を奇数行の先頭に移動する方法を探しています。

次のように、すべての偶数行をすべての奇数行の先頭に移動する方法を見つけようとします。

今後:

AAA
BBB
CCC
DDD

後ろに:

BBBAAA
DDDCCC

複数のファイルを同時に実行できればとても良いでしょう。 catを使用してすべてのファイルを結合すると、ファイルが大きすぎて処理できなくなるためです。 bashファイルに追加できるようにテキスト交換を実行する次のコマンドのようになります。

  find /directory/. -type f -exec sed -i 's/oldtext/newtext/g' {} \;

検索しましたが、適切なものが見つかりませんでした。

簡単にするには、すべての奇数行の先頭に「string1」を追加し、偶数行の先頭に「string2」を追加します。

  before:
  string1AAA
  string2BBB
  string1CCC
  string2DDD

  after:
  string2BBBstring1AAA
  string2DDDstring1CCC 

とても感謝しています。

ベストアンサー1

接頭辞の付いたアイデアを忘れてください。あなたが探しているスクリプトは

sed 'N;s/\(.*\)\n\(.*\)/\2\1/'

つまり、 を使用して次の行を読み、順序を変更してN改行を削除します。

find作成した内容と組み合わせることができます。まず、オプションなしで試してみて、-iこれが欲しいものをテストしてみてください。

おすすめ記事