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파일이 수정되지 않습니다.

관련 정보