목차

Linux sed

파일의 내용 변경

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

끝에 붙은 새줄 기호 제거

# 마지막 새줄만 제거
cat x | sed -z '$ s/\n$//'
 
# 끝에 있는 여러 새줄 기호 모두 제거(중간은 그대로 둠)
sed -Ez '$ s/\n+$//'

줄 처음/끝에 문자열 넣기

# 줄 처음
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
xclip -o -sel clip | sed -Ez '$ s/\n+$//' \
| sed 's/$/,/' \
| sed '$ s/,$//' \
| xclip -i -sel clip

desed

참조