bash 스크립트로 파일을 편집하는 가장 좋은 방법은 ' 무엇입니까?

RHEL 5.8에서 / bin / bash를 사용하고 파일 편집을 자동화하고 싶습니다. 파일을 검색하고 파일의 한 줄을 바꾸려면 스크립트가 필요합니다. 행 예 :

Other line Current date 01121990 Other line 

이 행을 검색하고 날짜 문자열을 미리 정해진 날짜로 바꿉니다. 이 파일은 서버 별 파일에서 복사되므로 새 파일로 에코 및 날짜를 입력 할 수 없습니다. 감사합니다!

댓글

  • sed가 여기에서 선택되는 도구입니다 …

답변

your_date="your desired date" sed -i "s/^Current date.*/Current date ${your_date}/" /path/to/file 

이게 가장 쉬운 방법입니다. 이것은 바꿀 날짜가 포함 된 모든 줄이 “현재 날짜”로 시작하는 유일한 줄이라고 가정합니다.

이 명령을 실행하는 사용자 수준에도 해당 파일을 편집 할 수있는 권한이 있어야합니다.

-i는 파일을 직접 편집하는 인라인 편집을 의미합니다.

^Current date.* 

다음으로 시작하는 모든 줄을 의미합니다. 현재 날짜 그리고 무엇이든으로 끝납니다. 즉, 전체 줄을 sed 항목의 두 번째 /…/ 부분에있는 항목으로 바꿉니다.

Double “은 sed 문 주위에 사용되므로 변수가 아닌 변수로 사용됩니다. 문자열.

댓글

  • '가 정확히 필요한 것을 테스트하고 테스트 한 Lizardx에게 감사드립니다. 잘 작동합니다.
  • 듣게되어 기쁩니다.

답변

ed 파일 내부 편집 도 할 수 있습니다. 편집 된 파일의 inode 번호는 변경되지 않습니다.

file="/path/to/file" your_date="your desired date" ls -i "$file" printf "%s\n" H ",g/^Current date.*/s//${your_date}/" wq | ed -s "$file" ls -i "$file" 

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다