폴더의 각 텍스트 파일 시작 부분에 문자열을 추가 할 수 있기를 원합니다. 리눅스에서 bash를 사용하면 어떻게 할 수 있습니까?어떻게 bash의 폴더에있는 각 파일의 시작 부분에 문자열을 추가 할 수 있습니까?
답변
이렇게하면됩니다. 각 파일에 동일한 텍스트를 사용하면보다 효율적으로 작업을 수행 할 수 있습니다 ...
이 트릭을 수행해야합니다.
FOLDER='path/to/your/folder'
TEXT='Text to prepend'
cd $FOLDER
for i in `ls -1 $FOLDER`; do
CONTENTS=`cat $i`
echo $TEXT > $i # use echo -n if you want the append to be on the same line
echo $CONTENTS >> $i
done
파일 크기가 매우 큰 경우 권장하지 않습니다.
이것은'ls' 예제의 쓸모없는 사용입니다. 셸 확장을 사용하십시오. – ghostdog74
당신은뿐만 아니라이 작업을 수행 할 수 있습니다
for f in *; do
cat <(echo "someline") $f > tempfile
mv tempfile $f
done
그것은 1 일 이후 크게 다르지 않다하지만 temporay 파일을 만들 필요없이 파일로 '에코'문장의 출력을 처리하는 방법을 보여 않습니다 값을 저장합니다.
그리고 당신이 루프없이뿐만 아니라
for f in *; do
sed -i.bak '1i\
foo-bar
' ${f}
done
당신은 이런 식으로 작업을 수행 할 수 있습니다 1 단일 명령에 나오지 사용하여이 작업을 수행 할 수 있으며, cat
sed -i '1i whatever' *
백업 할 경우 파일을 사용하려면 -i.bak를 사용하십시오.
또는 awk
awk 'FNR==1{$0="whatever\n"$0;}{print $0>FILENAME}' *
당신의 sed comman은 첫 번째 파일에만 문자열을 붙이는 것처럼 보입니다. – Raffael
은 저의 매력처럼 작동했습니다. –
당신은 임시 파일없이 수행 할 ed 명령을 사용할 수 있습니다 :
for file in *; do
(test ! -f "${file}" || test ! -w "${file}") && continue # sort out non-files and non-writable files
if test -s "${file}" && ! grep -Iqs '.*' "${file}"; then continue; fi # sort out binary files
printf '\n%s\n\n' "FILE: ${file}"
# cf. http://wiki.bash-hackers.org/howto/edit-ed
printf '%s\n' H 0a "foobar" . ',p' q | ed -s "${file}" # dry run (just prints to stdout)
#printf '%s\n' H 0a "foobar" . wq | ed -s "${file}" # in-place file edit without any backup
done | less
이 내가 밖으로 일한 가장 쉬운 방법입니다.
sed -i '1s/^/Text
file\n/' /file/to/change
- 1. 각 배열 항목의 시작 부분에 문자열을 추가하십시오.
- 2. 파일의 모든 기능 시작 부분에 printf 추가
- 3. 파일의 시작 부분에 write()?
- 4. 폴더에있는 각 PDF에 1 페이지를 더하기
- 5. iPhone - 오디오 파일의 시작 부분에 데이터를 추가하십시오.
- 6. 파일의 시작과 끝 부분에 머리말과 꼬리말로 텍스트를 어떻게 추가 할 수 있습니까?
- 7. 파일의 시작 부분에 이상한 문자가 있습니다
- 8. 파일에서의 getline 후 파일의 시작 부분에
- 9. 파일 시작 부분에 문자열을 추가하는 PHP 코드에 대한 작은 편집
- 10. NSMutableArray 시작 부분에 객체를 추가 하시겠습니까?
- 11. 메모장 txt 파일의 각 줄의 시작 부분에 단어를 쓰는 방법은 무엇입니까? C++
- 12. 메뉴 시작 부분에 메뉴를 선택하는 옵션 추가
- 13. 답장 전자 메일의 각 줄 시작 부분에 삽입
- 14. 어떻게 Java2D에서 문자열을 클립핑하고 추가 할 수 있습니까? 결국 ...?
- 15. 어떻게 텍스트 상자에 거대한 문자열을 효율적으로 추가 할 수 있습니까?
- 16. 파일의 처음 부분에 쓰십시오.
- 17. Bash에서는 파일의 각 줄 다음에 문자열을 어떻게 추가합니까?
- 18. iPhone - 오디오 파일의 시작 부분에 "무음"을 묻습니다.
- 19. 왜 .class 파일의 시작 부분에 마법 번호가 필요합니까?
- 20. 어떻게 API를 추가 할 수 있습니까?
- 21. 어떻게 문자열을 분할 할 수 있습니까?
- 22. 어떻게 문자열을 textView에 표시 할 수 있습니까?
- 23. SASS에서 어떻게 문자열을 인용 할 수 있습니까?
- 24. 어떻게 문자열을 디코딩 할 수 있습니까?
- 25. Perl의 다른 파일에서 한 파일의 문자열을 어떻게 찾을 수 있습니까?
- 26. Java에서 파일 시작 부분의 포인터를 어떻게 재설정 할 수 있습니까?
- 27. C++에서 파일의 시작 부분에 포인터를 얻는 방법
- 28. android가 XML 문자열을 가져 오므로 후크를 추가 할 수 있습니까?
- 29. 각 페이지의 시작 부분에 표 머리글이있는 .NET의 HTML 표 인쇄
- 30. 어떻게 아이폰의 하단 부분에 UIAlertview를 표시 할 수 있습니까?
일 .. 더 나은 솔루션을 추가합니다 :) – Cfreak
모두'$ f'는' "$의 f"는'해야합니다. 오류 검사를하는 것도 좋습니다. 또한 원본 파일의 사용 권한 및 소유권도 변경합니다. – ikegami