0

私は Linux を初めて使用し、やりがいのある仕事をしています。

3 つのデータ ファイルがあり、次の操作を行う必要があります。

  1. ファイル 1 の 31 行目に移動し、それを削除します。
  2. ファイル 2 から 1 行を読み取り、削除された行の代わりに追加します
  3. ファイル 1 の 97 行目に移動し、それを削除してから、ファイル 2 から行 1 を読み取り、ファイル 1 の削除された行の代わりに追加します。

同じファイル、つまり file を保持することも重要です。変更しないでください。

と のさまざまなバージョンを、バッファ コピーのトリックで試しsedましperlたが、成功しませんでした。

私はあらゆる提案を歓迎し、専門家に提案を求めます。

4

1 に答える 1

1

あなたの質問には 3 番目のファイルへの参照が見つかりませんが、ファイル 1 の 31 行目をファイル 2 の 1 行目に置き換え、ファイル 1 の 97 行目をファイル 2 の 2 行目に置き換えます。

sed -i -e '30R f2
31d;96R f2
97d' f1

f2 の後の新しい行は重要なので、sed はそれがファイル名の終わりであることを認識します。

このRコマンドは GNU 拡張であり、標準ではないことに注意してください。

于 2012-02-09T22:07:43.713 に答える