여러 파일에 한 줄을 추가하는 방법

여러 파일에 한 줄을 추가하는 방법

내가 많이.html파일의 < 뒤에 메타 태그를 추가해야 합니다.머리> 각 파일의 여는 태그.

어떻게 해야 하나요?

vim임무에 맞는가 ?

답변1

에서는 vim다음을 수행할 수 있습니다.

:%s/<head\b[^>]*>/& <meta foo="bar">/g

GNU에서도 이 작업을 수행할 수 있는데 sed, 이것이 더 적절할 수 있습니다.

for file in *.html; do
    sed -i 's/<head\b[^>]*>/& <meta foo="bar">/g' "$file"
done

-i심볼릭 링크가 깨질 수 있다는 점에 유의하세요 .

답변2

sed -i '/PATTERN/ a\
    Line which you want to append' filename

이 예의 경우

sed -i '/<HEAD>/a <meta>' test.txt
<HEAD>
<HEAD>

결과:

<HEAD>
<meta>
</HEAD>

위 명령은 문자열 일치 후에 새 줄을 추가합니다. 그러나 파일의 입력 문자열이

<HEAD><TITLE></TITLE>
</HEAD>

결과:

<HEAD><TITLE></TITLE>
<meta>
</HEAD>  //which is wrong.

아마도 다음과 같은 접근 방식을 시도해 볼 수 있을 것입니다.

sed -i 's/<HEAD>/<HEAD><meta>/' filename

관련 정보