私は2つのファイルを持っていますtest1 & test2あるランダムな位置に違いがあります。私はtest1とテスト2が異なるchar位置を検索したい&テスト1で*付き。しかし、制約はcharの位置を知るだけでcharを知らないことです。 私はcmp -bを使って、異なるバイト位置を取得しようとしましたが、sedで何かを得ることができません。また、バイト位置でcharを置き換えることができます。ライン内のchar位置も異なっています。したがって、任意のヘルプ(主な制約は、ファイル内の他の場所でその変更がその位置でのみ変更されることを望まないので、char値で置き換えることができないということです)。最初の出現交替は、異なる位置の前にある可能性があるため、最初の出現交替も機能しません。特定のバイト位置でcharを置き換えるsedコマンド
答えて
ファイルを切り捨てずにオフセットを設定してバイトを書きたいのであれば、おそらくDDは役に立ちますか?
セットアップ:
$ cat f1
aaaaaaaaaaaaaaaaaaaaaaaaa
$ cat f2
aaaaaaaaaaaaaaabaaaaaaaaa
スクリプト:
if ! CMPOUT=`cmp -b f1 f2`; then
POS=`echo "$CMPOUT" | sed -r 's/^.*: byte ([0-9]+),.*$/\1/'`
echo -n '*' | dd of=f2 seek="$((POS-1))" bs=1 count=1 conv=notrunc
fi
結果:
$ cat f2
aaaaaaaaaaaaaaa*aaaaaaaaa
お返事ありがとうございます、これは私が望むものですが、うまくいきますが、私のファイルは行以上の違いがあり、どの行にも違いがあります。ファイルはMB単位でもあります。ファイルのサイズ –
@ Mahi.G:ただ試してみてください。 'cmp'出力が期待されている限り、バイナリファイルを含めて何でもできると思います。私は以下のようにDDを使用してファイル2でBの前に*を追加したい場合はどのような –
おかげで、 - aaaaaaaaaaaaaaa * Mahi.G @ baaaaaaaaa –
- 1. SED:特定のバイト位置の後に余分なバイトを追加する
- 2. シンプルSED置き換え
- 3. nth charをsedに置き換えてください
- 4. 置き換えるバイト
- 5. 'root' @ 'localhost'を 'root' @ '%'に置き換えるためのsedコマンド
- 6. awkコマンドのカラム位置を動的に渡して、特定のカラムを定数値に置き換えます。
- 7. sedリテラルを置き換えるTAB
- 8. 文字列を変数に置き換えてGroovyとSEDコマンド
- 9. RHEL6.7でsedをsedに置き換える
- 10. 異なる文字列の文字列をSEDコマンドで置き換える
- 11. sedを使用して特定のIPアドレスを置き換えますか?
- 12. SEDを使用して特定の行をコマンド出力に置換する
- 13. バイナリファイルの特定の位置にバイトを書き込む
- 14. sedを使用してascii charと値を置き換えてください
- 15. ファイルの特定のバイト/位置に書き込むOcaml
- 16. C++ doubleをcharに置き換えてstd :: arrayに置き換えます。
- 17. 特定の文字の後にcharの番号を置き換えます。
- 18. sed特定の発生回数だけ見つけて置き換えます
- 19. Javascriptバイト配列の置き換え
- 20. divをコマンドに置き換える
- 21. 静的な位置で文字列を置き換える方法とsedで空白を削除しない
- 22. char *にcharを置き換える方法*
- 23. utf8文字列のUnicodeStringのchar posをバイト位置に変換する
- 24. ソースファイルの内容をバッチで置き換える前に、特定のファイルを置き換える前に
- 25. sedワイルドカード置換
- 26. リストのデータをその位置に置き換える
- 27. viで特定のパターンで行を置き換えるには?
- 28. Sedコマンド:もし存在すれば置き換える方法は?
- 29. ギャラリー位置を特定の画像位置でロードする
- 30. ファイル内の特定の位置にあるunix grep nバイト
ご質問はひどく不明瞭である、私はちょうどあなたが後にあるかを把握することはできません。あなたが問題を提示し、それを解決しようとする方法を提示しようとするので、それは有効な質問だと私は信じています。実際の意図がちょっとあいまいです。あなたは2つのファイル(1〜2行のテキスト)の例と、後の結果を提供できますか? – grochmal