다음 예제에서는 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 그러나 패턴과 일치하지 않는 …
배경 다음 텍스트를 고려하십시오. 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, …
$ 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
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가 완벽하게 작동합니다.
파일을 반복하고 싶습니다. for f in `grep -rsl "foo" . `: do sed -i -- "s/foo/bar/g" $f; done; 그러나 파일 이름은 공백을 포함하므로 공백이 발견 될 때마다 파일 이름이 분할됩니다. 공백이있는 파일 이름을 do블록에 전달하려면 어떻게해야 합니까?
다음과 같은 입력 파일이 있다고 상상해보십시오. 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'); 내 접근 방식은 …
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 …
이 구조에서 파일을 변환하려고합니다. foldera/folderb/filec.png 에: foldera_folderb_filec.png 나는 반쯤 있습니다. find . -type f -name "*.png" | sed 's@^./@@g;s@/@-@g' 기본적으로 이름 구조를 변환합니다. 그러나 아직 복사하지 않습니다. 이 시점에서 나는 붙어 있습니다. 실제로 복사 작업을 수행하기 위해 스크립트를 확장하려면 어떻게해야합니까?
화면에 쓸 것으로 예상되는 명령의 출력을 구문 분석하려고합니다. 원점으로 이동 제어 시퀀스 (VT220의 경우 ESC[1;1H) 로 구분 된 데이터가 있습니다 . 마지막 부분 만 필요합니다 (예 : 마지막으로 이동 한 후). 나는이 여러 가지 방법 (주로 awk와 sed)을 시도했지만 문제는 항상 제어 시퀀스의 일부가 쉘뿐만 아니라 프로그램에 특별한 의미를 가지고 …
다음과 같은 출력이 있습니다. "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 '".*": …
사용하여 sed문자열 리터럴에 사용되는 특정 문자에 적합가 포함 된 텍스트를 만드는 것은 간단합니다 : sed "s/\\\\/\\\\\\\\/g" sed "s/\\\"/\\\\\\\"/g" 그러나 줄 바꿈 문자가 포함 된 텍스트 파일로 비슷한 것을 어떻게 할 수 있습니까?
다음과 같은 이름으로 파일을 변경하고 싶습니다. 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/ 확인 : 이것은 …
두 번째 "."만 제거하는 방법에 대한 조언을 구하십시오. awk가있는 버전 번호의 문자 Linux & Solaris의 구문에 맞아야합니다 나는 쓴다 sed "s'/\./ /g'" - 그러나이 구문은 모든 "."를 제거합니다. 버전 번호에서 예를 들어 (이전 버전 번호) 34.34.55.4 sed 조작 후 34.34 55.4
쉘 스크립트를 통해 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 …