====== Linux sed ====== * ''sed'' 파일 스트림에 명령을 수행하고 그 결과를 표준출력으로 내보낸다. 원본 파일에는 변화를 주지 않는다. * see [[linux:sd|sd - search and displace]] * [[https://mug896.github.io/sed-stream-editor/|sed stream editor]] * [[https://wiki.kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/sedawk.html|Sed 와 Awk 에 대한 간단한 입문서]] * [[http://www.incodom.kr/Linux/%EA%B8%B0%EB%B3%B8%EB%AA%85%EB%A0%B9%EC%96%B4/sed|Linux/기본명령어/sed]] * [[http://korea.gnu.org/manual/release/sed/|SED 스트림 에디터]] * [[https://www.ibm.com/support/knowledgecenter/ko/ssw_aix_72/com.ibm.aix.cmds5/sed.htm|IBM Knowledge Center - sed 명령]] * [[https://www.tecmint.com/linux-sed-command-tips-tricks/|15 Useful 'sed' Command Tips and Tricks for Daily Linux System Administration Tasks]] ===== 파일의 내용 변경 ===== * ''-i.bak'' : 파일을 잠시 ''.bak'' 확장자를 가진 파일로 복제 한뒤에 변경사항을 적용하고 저장한다. * ''-i'' 만 하면, 백업파일 없이 원본 파일을 즉시 변경한다. * 여러 항목을 한번에 바꾸려면 ''-e'' 옵션을 계속 추가한다. sed -i.bak -e "s/A/X/g" -e "s/B/Y/g" -e "s/C/Z/g" /path/to/file.txt ===== 특정 영역에만 변경 적용 ===== # 1 줄만 변경 sed '1 s/a/b/g' file.txt # 2~4 줄만 변경 sed '2,4 s/a/b/g' file.txt ===== 끝에 붙은 새줄 기호 제거 ===== * https://stackoverflow.com/a/58129173/1051402 # 마지막 새줄만 제거 cat x | sed -z '$ s/\n$//' # 끝에 있는 여러 새줄 기호 모두 제거(중간은 그대로 둠) sed -Ez '$ s/\n+$//' ===== 줄 처음/끝에 문자열 넣기 ===== * [[https://linuxconfig.org/add-character-to-the-beginning-of-each-line-using-sed|Add character to the beginning of each line using sed - LinuxConfig.org]] # 줄 처음 sed 's/^/원하는텍스트/' file.txt # 줄 끝 sed 's/$/원하는텍스트/' file.txt # 마지막 줄의 마지막 쉼표 제거 sed '$ s/,$//' # 마지막 줄에 2줄 추가 - $ : 마지막줄, a : append sed -i -e '$a\ foo1 bar1\ foo2 bar2' file.txt # 혹은 유사하게, TEXTTOEND 를 마지막줄에 추가 sed -i -e '$aTEXTTOEND' file.txt * 클립보드 텍스트의 줄 끝에 모두 쉼표 붙여서 다시 클립보드에 넣기 / [[linux:xclip|xclip]] xclip -o -sel clip | sed -Ez '$ s/\n+$//' \ | sed 's/$/,/' \ | sed '$ s/,$//' \ | xclip -i -sel clip ===== desed ===== * [[https://github.com/SoptikHa2/desed|desed]] * `sed` debugging ===== 참조 ===== * [[https://jhnyang.tistory.com/287|[리눅스/유닉스] 유용 명령어 sed를 살펴보자! sed 명령어 사용법과 예시, 패턴 스페이스와 홀드 스페이스, 유용 표현]] * [[https://www.linuxteck.com/sed-commands-in-linux/|12 Useful 'sed' Commands In Linux | LinuxTeck]]