html에서 문자열을 교체해야 합니다. sed가 작동하지 않습니다.

html에서 문자열을 교체해야 합니다. sed가 작동하지 않습니다.

이것은 내가 사용하는 쉘 스크립트의 코드입니다.

sed 's/xyxx/$date1/' /u001/Scripts/abc.html > /u001/Scripts/abc.html 

이 코드는 AWK 명령에서 HTML 태그를 인쇄하려고 시도합니다.

nawk 'BEGIN{
      FS=","
      print "<HTML>""<HEAD>""<p>Hi All,<br><br>There are no cases closed on the"
      print  "xyxx that meet the criteria for submission</p>"
      }
      END{
      print "<p>Regards,<br>Support Team</p></BODY></HTML>"
      }
      '

답변1

이 명령에서는

sed 's/xyxx/$date1/' /u001/Scripts/abc.html > /u001/Scripts/abc.html 

리디렉션이 먼저 발생합니다! 따라서 쉘은 /u001/Scripts/abc.html쓰기를 위해 열리고 비워집니다. 그런 다음 sed명령이 실행되지만 입력 파일이 비어 있으므로 출력도 없습니다.

의견에서 알 수 있듯이 다음을 사용해야 합니다.

sed -i.bak 's/xyxx/'"$date1"'/' /u001/Scripts/abc.html 

이것은 것이다

  • 확장 백업으로 파일을 생성 .bak하고 원본 파일( -i.bak) 을 덮어씁니다.
  • 그리고 사용된 변수 값은 $date1큰따옴표로 묶여 있기 때문에 표현식의 나머지 부분과 다릅니다 sed.

관련 정보