md5sum出力を特定のファイルラインにパイプ

md5sum出力を特定のファイルラインにパイプ


私はいくつかの「ほぼ良い」例を見つけましたが、それらのどれも正しく動作しませんでした。

ファイルがあります。a.txtそしてファイルcheckme.txt。 md5sum checkme.txtコマンドを実行して、次のように書きたいと思います。10号線~のa.txt文書。

使ってみようsedコマンドを出すが役に立たない。誰でも私を助けることができますか?

答え1

sed解決策:

sed '10 s/.*/'"$(md5sum checkme.txt | cut -d' ' -f1)"'/' a.txt
  • 10 s/.*/<md5sum result>/- 10行の内容を交換します。

答え2

解決策ed

printf '10d\n-1r !md5sum checkme.txt\n' | ed -s a.txt

スクリプトed:

10d
-1r !md5sum checkme.txt

これにより、行10が削除され、a.txtその位置に出力が挿入されます。md5sum checkme.txt結果が表示または保存されないため、これは実際に多くのことを行いません。

端末に結果を書き込みます。

printf '10d\n-1r !md5sum checkme.txt\n,p\n' | ed -s a.txt

結果を書き換えるにはa.txt:

printf '10d\n-1r !md5sum checkme.txt\nw\n' | ed -s a.txt

行が10個未満の場合、a.txtファイルは変更されません。

関連情報