«sed» 태그된 질문

"sed"( "스트림 편집기")는 텍스트 파일을 구문 분석하고 변환하는 Unix 유틸리티입니다.


1
sed가 일치하지 않는 줄을 생략하는 방법?
다음 예제에서는 a 또는 a로 sed시작하는 행을 일치 시키고 해당 행의 첫 번째 문자 ( 또는 ) 를 인쇄합니다 .acac $ echo "ag bh ci dj ek fl" | sed 's/\(a\|c\)./\1/' # Matches lines starting with 'a' or 'c'. output: a bh c dj ek fl 그러나 패턴과 일치하지 않는 …

1
명령 태그를 변환하는 욕심없는 정규식
배경 다음 텍스트를 고려하십시오. There are three types of font families: serif, sans serif, and teletype. To switch between these families, use <cmd>rm</cmd> for serif, <cmd>ss</cmd> for sans serif, and <cmd>tt</cmd> for teletype. 나는 변화시키고 싶다. <cmd>x</cmd> 에 {{cmd|x}}, 다음과 같이 : There are three types of font families: serif, …
5 unix  vim  regex  sed 

3
sed와의 첫 번째 적중 / 일치 만 삭제
$ echo -e "AsometAhingA\nsomethingA\nASomethiAng" AsometAhingA somethingA ASomethiAng $ echo -e "AsometAhingA\nsomethingA\nASomethiAng" | sed "s/A//" sometAhingA something SomethiAng $ sed "s/A//"모든 줄에서 첫 번째 일치 항목 을 삭제 한다는 것을 알고 있습니다. 그러나 텍스트 파일이나 스트림에서 첫 번째 일치 항목 만 삭제하고 싶습니다. 어떻게해야합니까? 처럼:sed -i "MAGIC" file.txt
5 linux  fedora  sed 

2
sed를 사용하여 파일의 밑줄로 도트 바꾸기
sed를 사용하여 파일의 출력을 편집하려고했습니다. 파일의 내용은 다음과 같습니다. cat /tmp/Group_RM t.p@k.p t.m@k.k 출력을 다음과 같이 얻으려고했습니다. cat /tmp/Group_RM t_p@k_p t_m@k_k 아래 명령을 시도했지만 출력이 이상하게 보입니다. cat /tmp/Group_RM | sed 's/./_/g' 출력은 다음과 같습니다. ____ ___ _______ sed는 모든 문자를 밑줄로 대체합니다. "_"을 "."로 대체하려고하면 sed가 완벽하게 작동합니다.
4 linux  bash  sed 

2
공백이있는 grep -l 출력 파일 이름
파일을 반복하고 싶습니다. for f in `grep -rsl "foo" . `: do sed -i -- "s/foo/bar/g" $f; done; 그러나 파일 이름은 공백을 포함하므로 공백이 발견 될 때마다 파일 이름이 분할됩니다. 공백이있는 파일 이름을 do블록에 전달하려면 어떻게해야 합니까?
4 bash  grep  path  sed 

3
sed : 첫 번째 숫자 범위 만 교체
다음과 같은 입력 파일이 있다고 상상해보십시오. INSERT INTO video_item_theme VALUES('9', '29'); INSERT INTO video_item_theme VALUES('19', '312'); INSERT INTO video_item_theme VALUES('414', '1'); 그리고 첫 번째 범위에만 10000을 더하고 싶습니다. 그래서 다음과 같이 끝납니다. INSERT INTO video_item_theme VALUES('10009', '29'); INSERT INTO video_item_theme VALUES('10019', '312'); INSERT INTO video_item_theme VALUES('10414', '1'); 내 접근 방식은 …
4 regex  sed 

1
/ etc / apache2 / sites-available에서 sed를 어떻게 사용합니까?
sed 를 사용 하여 아파치 의 기본 파일 을 복사하고 새 파일을 작성하여 /var/www( $DOC_ROOT아래) 내 디렉토리로 바꾸는 스크립트를 작성하려고합니다 $NEW_SITES_DIR. 그러나 sed가 sudo에서 올바르게 실행되지 않습니다 . 다음에 대해 "permission denied" 오류가 발생합니다. sudo sed -ie 's:$DOC_ROOT:$NEW_SITES_DIR:g' < default > $NEW_SITE 서브 쉘 을 생성 하려고했습니다 sudo sh -c …

4
Bash에서 폴더 구조를 파일 이름으로 병합
이 구조에서 파일을 변환하려고합니다. foldera/folderb/filec.png 에: foldera_folderb_filec.png 나는 반쯤 있습니다. find . -type f -name "*.png" | sed 's@^./@@g;s@/@-@g' 기본적으로 이름 구조를 변환합니다. 그러나 아직 복사하지 않습니다. 이 시점에서 나는 붙어 있습니다. 실제로 복사 작업을 수행하기 위해 스크립트를 확장하려면 어떻게해야합니까?
4 bash  find  sed 

1
제어 문자로 구문 분석
화면에 쓸 것으로 예상되는 명령의 출력을 구문 분석하려고합니다. 원점으로 이동 제어 시퀀스 (VT220의 경우 ESC[1;1H) 로 구분 된 데이터가 있습니다 . 마지막 부분 만 필요합니다 (예 : 마지막으로 이동 한 후). 나는이 여러 가지 방법 (주로 awk와 sed)을 시도했지만 문제는 항상 제어 시퀀스의 일부가 쉘뿐만 아니라 프로그램에 특별한 의미를 가지고 …

3
문자열을 추출하기 위해 awk 또는 grep 출력을 사용해야합니다.
다음과 같은 출력이 있습니다. "vancouver/news/vancouver-voices": { "status": 0, "time": 0, "timestamp": 1371298701 }, "vancouver/news/vancouvers-march-second-annual-success": { "status": 0, "time": 0, "timestamp": 1371298701 } 부분 URL 만 추출해야합니다 ( vancouver/news/vancouvers-march-second-annual-success and vancouver/news/vancouver-voices예 : 나는 기본적으로 bash를 통해 명령을 호출 한 다음 grep awk 또는 sed로 파이프합니다. grep ( | grep -o '".*": …


2
두 패턴 사이에 문자열을 삽입
다음과 같은 이름으로 파일을 변경하고 싶습니다. d1-a2_A1_B1.txt abcd_A90_B2.txt _FOO첫 번째 _A[0-9]\+와 사이 에 삽입하려는 _B[0-9]파일 이름이 d1-a2_A1_FOO_B1.txt abcd_A90_FOO_B2.txt 그러나 내 정규 표현식이 작동하지 않습니다. for f in $(ls); do mv $f \`echo $f | sed -e s/\(.*_A[0-9]\+\)\(_B[0-9].*\)/$1_FOO$2/\`; done 단일 문자열로 시도했습니다. echo abcd_A90_B2.txt | sed -e s/\(.*_A[0-9]\+\)\(_B[0-9].*\)/$1_FOO$2/ 확인 : 이것은 …
2 linux  bash  regex  sed 

3
awk / sed + 두 번째 문자 만 공백으로 바꿉니다.
두 번째 "."만 제거하는 방법에 대한 조언을 구하십시오. awk가있는 버전 번호의 문자 Linux & Solaris의 구문에 맞아야합니다 나는 쓴다 sed "s'/\./ /g'" - 그러나이 구문은 모든 "."를 제거합니다. 버전 번호에서 예를 들어 (이전 버전 번호) 34.34.55.4 sed 조작 후 34.34 55.4
2 linux  sed  solaris 

2
스크립트를 통해 epel repo를 사용 하시겠습니까?
쉘 스크립트를 통해 Epel 저장소를 설치하고 있습니다. 저장소는 기본적으로 비활성화되어 있습니다. 스크립트를 추가 패키지를 설치할 수 있도록 활성화하고 싶습니다. 다음은 Epel 저장소를 설치합니다. yum install -y epel-release 이것은 다음을 포함하는 /etc/yum.repos.d/epel.repo를 만듭니다. [epel] name=Extra Packages for Enterprise Linux 5 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch failovermethod=priority enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL [epel-debuginfo] name=Extra Packages …
2 regex  sed  yum 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.