파일 주위에 PHP 태그를 추가해야합니다. 다음을 사용하여 쉽게 추가 할 수 있습니다.
find . -exec echo "?>" >> '{}' \;
하지만 내가 어떻게 할 수 붙일 태그를 <?php
?
파일 주위에 PHP 태그를 추가해야합니다. 다음을 사용하여 쉽게 추가 할 수 있습니다.
find . -exec echo "?>" >> '{}' \;
하지만 내가 어떻게 할 수 붙일 태그를 <?php
?
답변:
sed -i "1s/^/<?php /" file
(는 -i
현재 위치에서 편집을위한 것입니다.)
더 휴대용 버전 :
ed file <<!
1s/^/<?php /
wq
!
sed
하고 백업 접미사를 추가 할 수 있습니다.
-i
이식성이 없으며 구문은 구현마다 다르며 심볼릭 링크를 끊습니다. 실제로 파일을 편집하도록 설계된 응용 프로그램을 사용하는 것이 좋습니다.
아직 의견을 남길 수는 없지만 한 번에 모든 것을 할 수 있습니다.
find . -type f -exec sed -i -e "1s/^/<?php /" -e "\$s/\$/ ?>/" {} \;
펄 원 라이너로 그렇게 할 수 있습니다.
perl -0777 -p -i -e "s/^/hey /g" testfile
-0777
힘은 파일 소리내어 모드를, 그래서 전체 파일은 하나의 선으로 읽습니다. -p
루핑을 활성화합니다. -i
파일을 내부 편집 할 수 있습니다. ^
줄의 시작을 나타냅니다.
$ cp testfile1 testfile; perl -0777 -p -i -e "s/^/hey /g" testfile; diff testfile testfile1
1c1
< hey asdf
---
> asdf
업데이트 : 설명에 표시된대로 -i.bak
대신을 사용하여 백업을 자동 생성하도록 선택할 수 있습니다 -i
. 이것은 명령에 오류가있는 경우 추가 안전을 제공합니다. -i
백업의 접미사가 되는 인수 입니다.
많은 파일을 업데이트 할 때로 명령을 실행하고 -i.backup${RANDOM}
모든 파일이 올바르게 업데이트되었는지 확인한 다음 해당 확장자를 가진 모든 파일을 제거 할 수 있습니다.
-i
접미사없이 플래그를 사용하도록 권장하는 경우 독자에게 백업 이 없다는 것을 경고하십시오 . 몇 문자 이상 ( -i.bak
)의 경우 한 줄에 오타가 포함 된 경우 백업을받습니다. 상당히 간단한 오타 (예 : -p
깃발을 잊어 버림 )는 하루 종일 망칠 수 있습니다.
sed
스트림 편집 용입니다. 파일이 스트림이 아닙니다. ed
또는 이와 같은 목적을위한 프로그램을 사용하십시오 ex
. -i
에 대한 옵션 sed
은 기본적으로 그것을 삭제하고 그것을 재현하기 때문에뿐만 아니라 이식 할 수 없습니다, 그것은 또한 무의미하다, 당신이 발생할 수있는 심볼릭 링크를 중단합니다.
for file in foo bar baz; do
ed -s "${file}" << EOF
0a
<?php
.
w
EOF
done
ed
해당 용도 로 사용하는 방법을 알고 있다면 답을 제시하십시오.
디렉토리의 모든 파일 끝에 무언가를 추가하기 위해 작성한 것에 대한 대안 (in bash
) :
for FNAME in *
do
echo "?>" >> $FNAME
done
비록 당신의 find
원 라이너를 좋아하지만 :)
$FNAME
해야 $fname
- 규칙에 따라, 우리는 환경 변수 (호출기, 에디터, SHELL, ...) 및 내부 쉘 변수를 대문자 (BASH_VERSION, RANDOM, ...). 다른 모든 변수 이름에는 하나 이상의 소문자가 포함되어야합니다. 이 규칙은 실수로 환경 및 내부 변수를 무시하지 않도록합니다.