나는 파일이 여러 개 있는데, printf
이라는 줄을 찾고 그 줄에 코드를 주석으로 처리하기 전에 //
을 추가하고 싶습니다. 나는 파이썬을 사용하여 각 파일을 읽고 변환을 수행하고 변환 된 텍스트를 다시 작성할 수 있지만 너무 복잡합니다. 다른 쉬운 방법이 있습니까? 나는 sed
과 awk
과 같은 것을 생각했지만 표현식을 쓰는 방법을 모르거나 sed
/awk
을 사용하여이 작업을 완료 할 수 있는지 여부를 고려했습니다.텍스트 파일의 특정 줄을 찾고이를 조작하는 방법은 무엇입니까?
답변
awk.
sub(/^/,"//")
이 기록 //
의 시작 부분에 추가 그들에 printf
레코드에 대한
/printf/
:$ awk '/printf/ { sub(/^/,"//") } 1' *.c
는 설명 : 거기에는 샘플 데이터 없었다 내가 더이 .c 주위에 파일이 없었로 그것은 안된입니다
1
암시 적 인쇄
이 해결책은 stdout에 출력을 출력합니다. 이것은 여러 파일을 처리하는데 약간 문제가있을 수 있습니다. 이를 처리하는 한 가지 방법은 Gnu awk v. 4.1.0 이상 및 inplace edit : gawk -i inplace
을 사용하는 것입니다. 암시 적 인쇄를 { print > "edited-" FILENAME }
으로 변경하여 편집 된 각 파일을 새 파일 (예 : file.c
에서 edited-file.c
)에 인쇄하는 등 다른 파일로 출력 할 수도 있습니다. 솔직히, 나는 @ sat의 sed
해결책을 나 자신으로 사용할 것이다. sed
와
:
sed '/printf/s~^~//~g' *.c
가 @SLePort에 의해 제안,
sed 's~.*printf~//&~' *.c
현재 위치에서 편집에 사용
-i
.
일치를위한 또 다른 방법은 정확히 printf
은 (printf
가정하면 항상 개행에서 시작) :
sed 's~^\([\t ]*\)\(printf\)~\1//\2~g' file
아니면 sed의 ~. * printf ~ // & ~ ''. 그리고 여기서'g '수정자가 유용하다는 것을 확신하지 못합니다. – SLePort
는 ed
, UNIX
(휴대용, POSIX
호환) -days 및 인 - 할 수있는 루프 이후 사용할 수있는 표준 편집기를 사용하여 장소 교체
for i in *.c; do
printf '%s\n' ",g/printf/ s/^/\/\//" w q | ed -s -- "$i"
done
에서
0,g/printf/
모든 라인에 printf
및 s/^/\/\//
이 포함되어 있으면 해당 라인에 //
이라는 단어가 추가됩니다. 그런 다음 wq
이 파일을 쓰고 그 파일을 닫습니다.
ex
편집기 Vim
for i in *.c; do printf '%s\n' "%g/printf/ s/^/\/\//" w q | ex -s "$i"; done
_file_':)'을 편집하는 _ _ 편집기 편집기 _ 및 _ 스트림 편집기 _를 사용해 주셔서 감사합니다. –
냄새 나는 사람, 그 사람들은 참으로 좋은 날이었습니다. ++ –
sed '/printf/ s/^/\/\//' filename
- 1. 텍스트 파일의 특정 줄을 삭제하는 방법은 무엇입니까?
- 2. 텍스트 파일의 중간에 줄을 삽입하는 방법은 무엇입니까?
- 3. 텍스트 파일의 특정 줄을 쉘 스크립트로 대체하는 방법은 무엇입니까?
- 4. bash에서 파일의 특정 줄을 추출하는 방법은 무엇입니까?
- 5. 텍스트 파일의 줄을 JComboBox에 복사하는 방법은 무엇입니까?
- 6. 텍스트 파일의 특정 줄을 덮어 쓰는 방법
- 7. 파이썬에서 텍스트 파일의 특정 줄을 어떻게 사용합니까?
- 8. 파일의 특정 줄을 읽으십시오.
- 9. 특정 텍스트 파일의 특정 줄을 다른 텍스트 파일로 추출
- 10. 텍스트 상자의 텍스트 파일에서 특정 텍스트 줄을 표시하는 방법은 무엇입니까?
- 11. 텍스트 파일의 특정 줄을 변경하는 방법
- 12. 텍스트 파일의 특정 줄을 프로그래밍 방식으로 수정하기
- 13. 텍스트 파일의 특정 줄을 어떻게 인쇄합니까?
- 14. 텍스트 파일의 특정 줄을 입력과 비교하십시오.
- 15. 자바에서 텍스트 파일의 특정 줄을 어떻게 읽습니까?
- 16. 루비가 텍스트 파일의 특정 줄을 필터링하는 중
- 17. JavaScript에서 DOM의 특정 문자를 조작하는 방법은 무엇입니까?
- 18. 플랫 파일의 특정 줄을 덮어 쓰는 방법은 무엇입니까?
- 19. 텍스트 파일의 특정 부분을 읽는 방법은 무엇입니까?
- 20. 파일의 특정 줄을 찾는 방법은 무엇입니까? 다음과 같이
- 21. 정수 값을 찾고이를 비교하여 주 파일을 전송하는 방법은 무엇입니까?
- 22. 텍스트 파일의 특정 줄 읽기
- 23. 파일의 특정 줄을 무시하면서 디렉토리 diff 자동화하기
- 24. 특정 페이지에서 DOM을 조작하는 방법은 무엇입니까?
- 25. 빈 줄을 피하는 파일의 특정 줄에서 파일을 만드는 방법은 무엇입니까?
- 26. Perl 디버거에서 require'd 파일의 특정 줄을 어기는 방법은 무엇입니까?
- 27. 자바에서 텍스트 파일의 다음 줄을 읽는 방법은 무엇입니까?
- 28. 줄의 일부만 알고 텍스트 파일의 전체 줄을 바꾸는 방법은 무엇입니까?
- 29. Matlab M 파일의 첫 번째 텍스트 줄을 얻는 방법은 무엇입니까?
- 30. 텍스트 파일의 한 줄을 bash로 바꾸는 방법은 무엇입니까?
없음의 해당하는 명령 줄을 사용하여, 같은 한 줄에
(또는) 명령 줄 친화적 인 버전을 사용, 그것은이다 코드가 작성된 특정 C 변종에 대한 구문 분석기없이이 작업을 강력하게 수행 할 수 없습니다. 일부 입력 파일 내용의 경우 모든 게시 된 응답이 실패합니다. –