Sa Vào Nguy Hiểm | 悬溺 — 葛东琪 | Ya i ya i ya i ya i ya i ya | Bài Hát Hot Nhất Tik Tok Trung Quốc
차례:
텍스트 파일을 다룰 때 종종 하나 이상의 파일에서 텍스트 문자열을 찾아서 바꿔야합니다.
sed
는 s treamed
sed
입니다. 파일 및 파이프 라인과 같은 입력 스트림에서 기본 텍스트 조작을 수행 할 수 있습니다.
sed
를 사용하면 단어와 줄을 검색, 찾기 및 바꾸기, 삽입 및 삭제할 수 있습니다. 복잡한 패턴을 일치시킬 수있는 기본 및 확장 정규식을 지원합니다.
문자열을 찾아서
sed
바꾸는 방법에 대해 이야기하겠습니다. 또한 재귀 검색 및 바꾸기를 수행하는 방법을 보여줍니다.
sed
문자열 찾기 및 바꾸기
sed
에는 몇 가지 버전이 있으며 기능상 차이가 있습니다. macOS는 BSD 버전을 사용하며 대부분의 Linux 배포판에는 기본적으로 GNU
sed
사전 설치되어 있습니다. 우리는 GNU 버전을 사용할 것입니다.
sed
사용하여 텍스트를 검색하고 바꾸는 일반적인 형식은 다음과 같습니다.
sed -i 's/SEARCH_REGEX/REPLACEMENT/g' INPUTFILE
-
-i
기본적으로sed
는 출력을 표준 출력에 기록합니다. 이 옵션은sed
가 파일을 편집하도록 지시합니다. 확장자가 제공되면 (예: -i.bak) 원본 파일의 백업이 생성됩니다.s
대체 명령, 아마도 sed에서 가장 많이 사용 된 명령입니다./ / /
-구분 문자. 임의의 문자가 될 수 있지만 일반적으로 슬래시 (/
) 문자가 사용됩니다.SEARCH_REGEX
검색 할 일반 문자열 또는 정규식입니다.REPLACEMENT
교체 문자열입니다.g
글로벌 대체 플래그. 기본적으로sed
는 파일을 한 줄씩 읽고 한 줄에서SEARCH_REGEX
의 첫 항목 만 변경합니다. 교체 플래그가 제공되면 모든 발생이 교체됩니다.INPUTFILE
명령을 실행하려는 파일의 이름입니다.
쉘 메타 문자가 확장되지 않도록 인수를 따옴표로 묶는 것이 좋습니다.
sed
명령을 사용하여 파일에서 텍스트를 검색하고 가장 일반적으로 사용되는 옵션 및 플래그로 바꾸는 방법에 대한 예를 살펴 보겠습니다.
데모 목적으로 다음 파일을 사용합니다.
file.txt
123 Foo foo foo foo /bin/bash Ubuntu foobar 456
sed -i 's/foo/linux/' file.txt
123 Foo linux foo linux /bin/bash Ubuntu foobar 456
전역 대체 플래그를 사용하면
sed
는 모든 검색 패턴을 대체합니다.
sed -i 's/foo/linux/g' file.txt
123 Foo linux linux linux /bin/bash Ubuntu linuxbar 456
알다시피, 이전 예제에서
foobar
문자열 내부의 하위 문자열
foo
도 바뀝니다. 이것이 원하는 동작이 아닌 경우 검색 문자열의 양쪽 끝에 단어 경계 표현식 (
\b
)을 사용하십시오. 이렇게하면 부분 단어가 일치하지 않습니다.
sed -i 's/\bfoo\b/linux/g' file.txt
123 Foo linux linux linux /bin/bash Ubuntu foobar 456
패턴 대소 문자를 구분하지 않으려면
I
플래그를 사용하십시오. 아래 예제에서
g
및
I
플래그를 모두 사용하고 있습니다.
sed -i 's/foo/linux/gI' file.txt
123 linux linux linux linux /bin/bash Ubuntu linuxbar 456
sed -i 's/\/bin\/bash/\/usr\/bin\/zsh/g' file.txt
더 쉽고 훨씬 읽기 쉬운 옵션은 다른 구분 문자를 사용하는 것입니다. 대부분의 사람들은 세로 막대 (
|
) 또는 콜론 (:)을 사용하지만 다른 문자를 사용할 수 있습니다.
sed -i 's|/bin/bash|/usr/bin/zsh|g' file.txt
123 Foo foo foo foo /usr/bin/zsh Ubuntu foobar 456
정규식을 사용할 수도 있습니다. 예를 들어 3 자리 숫자를 모두 검색하고 사용하는 문자열
number
바꾸려면 다음을 수행하십시오.
sed -i 's/\b\{3}\b/number/g' file.txt
number Foo foo foo foo /bin/bash demo foobar number
sed의 또 다른 유용한 기능은 앰퍼샌드 문자
&
를 사용하여 일치하는 패턴에 해당한다는 것입니다. 캐릭터는 여러 번 사용할 수 있습니다.
예를 들어, 각 3 자리 숫자 주위에 중괄호
{}
를 추가하려면 다음을 입력하십시오.
sed -i 's/\b\{3}\b/{&}/g' file.txt
{123} Foo foo foo foo /bin/bash demo foobar {456}
마지막으로,
sed
로 파일을 편집 할 때 항상 백업하는 것이 좋습니다. 이를 위해서는
-i
옵션의 확장자 만 제공하십시오. 예를 들어,
file.txt
를 편집하고 원본 파일을
file.txt.bak
로 저장하려면 다음을 사용하십시오.
sed -i.bak 's/foo/linux/g' file.txt
ls
재귀 찾기 및 바꾸기
때로는 문자열이 포함 된 파일을 찾기 위해 디렉토리를 재귀 적으로 검색하고 모든 파일에서 문자열을 바꾸려고합니다. 디렉토리에서 파일을 재귀 적으로
find
또는
grep
과 같은 명령을 사용하고 파일 이름을
sed
파이핑하여이를 수행 할 수 있습니다.
다음 명령은 현재 작업 디렉토리에서 파일을 재귀 적으로 검색하고 파일 이름을
sed
전달합니다.
find. -type f -exec sed -i 's/foo/bar/g' {} +
파일 이름에 공백이 포함 된 파일의 문제를 피하려면
-print0
옵션을 사용하십시오.
find
는 파일 이름을 인쇄 한 다음 널 문자를 출력하고
xargs -0
사용하여 출력을
sed
파이프합니다.
find. -type f -print0 | xargs -0 sed -i 's/foo/bar/g'
디렉토리를 제외하려면
-not -path
옵션을 사용하십시오. 예를 들어, 로컬 git repo에서 문자열을 바꾸어 점 (
.
)으로 시작하는 모든 파일을 제외하려면 다음을 사용하십시오.
find. -type f -not -path '*/\.*' -print0 | xargs -0 sed -i 's/foo/bar/g'
find. -type f -name "*.md" -print0 | xargs -0 sed -i 's/foo/bar/g'
다른 옵션은
grep
명령을 사용하여 검색 패턴을 포함하는 모든 파일을 재귀 적으로 찾은 다음 파일 이름을
sed
로 파이프하는 것입니다.
grep -rlZ 'foo'. | xargs -0 sed -i.bak 's/foo/bar/g'
결론
복잡하고 복잡해 보일 수 있지만 처음에는 파일에서 텍스트를
sed
로 검색하고 바꾸는 것이 매우 간단합니다.
sed
명령, 옵션 및 플래그에 대한 자세한 내용은 GNU sed 매뉴얼 및 Grymoire sed 튜토리얼을 참조하십시오. 질문이나 의견이 있으시면 언제든지 의견을 남겨주십시오.
파일에서 아이콘 : DLL, EXE 파일에서 아이콘을 추출하는 프리웨어 exe, psd, ocx, dll, ico, apk 등, 프리웨어 파일에서 아이콘. jpg, gif, png 등의 파일로 저장하십시오. 여기에 무료 소프트웨어를 다운로드하십시오.

우리는 일상 생활에서 우리가 접하게되는 대부분의 소프트웨어를 가지고 있습니다. 일반적으로
대담을 사용하여 비디오 파일에서 오디오를 쉽게 추출하는 방법

빠른 팁 : Audacity를 사용하여 비디오 파일에서 오디오를 쉽게 추출하는 방법 알아보기.
Imgburn을 사용하여 flac 파일에서 오디오 CD를 만드는 방법

Windows에서 ImgBurn을 사용하여 FLAC 파일에서 오디오 CD를 만드는 방법은 다음과 같습니다.