単一のコマンドを使用してファイルから削除された行を新しいファイルとして印刷するには?

単一のコマンドを使用してファイルから削除された行を新しいファイルとして印刷するには?

例:
ファイルAに20行が含まれていますが、最初の10行を削除しました。sed -i 1,10d A.txt

削除された10行をファイルBに印刷するには、どのコマンドを作成する必要がありますか?

私はsed -i 1,10d A.txt >> B.txt何がうまくいかなかったかを試しました。

ベストアンサー1

使用sedsedスクリプト

1,10{
    w otherfile
    d
}

これにより、行1〜10がファイルに書き込まれ、otherfile入力から削除されます。

ソースファイルの内部編集(sedここではGNUを使用):

sed -i '1,10{w B.txt
        d}' A.txt

ファイル名を区別するには改行文字が必要です。または、

sed -i -e '1,10{w B.txt' -e 'd}' A.txt

おすすめ記事