DevOps/Linux

리눅스 sed 명령어

알로그 2021. 6. 12. 13:01
반응형

sed(streamlined editor)에 대해 알아보자.

 

표준 입력이나 파일로부터 데이터를 입력받아 한 행씩 처리하여 그 결과를 표준 출력으로 내보낸다.

또한 sed는 리다이렉션이나 파이프에 사용될 수 있다.

 

사용방법

sed [옵션] '명령어' [파일명]

 

표준 출력

sed -n '1p' data.txt         # 특정 1행 출력
sed -n '1,3p' data.txt		 # 1~3번째 행까지 출력
sed -n '10,$p' data.txt		 # 10번째 행부터 마지막 행까지 출력
sed -n '/Feb/p' data.txt	 # 'Feb'를 포함한 행 출력

 

삭제

임시 버퍼 안에 각 행을 복사해서 처리하므로 원본 파일은 변경되지 않음

sed '1d' data.txt		# 1번째 행 삭제
sed '5,$d' data.txt		# 5번째 행부터 마지막 행까지 삭제
sed '/Feb/d' data.txt	# 'Feb'를 포함한 모든 행 삭제
sed '/Feb/!d' data.txt	# 'Feb를 포함하지 않는 모든 행 삭제

 

치환

sed 's/root/ROOT/' data.txt			# 행마다 처음으로 발견 된 root 패턴을 ROOT로 치환
sed 's/root/ROOT/2' data.txt		# 행마다 두번째로 발견 된 root 패턴을 ROOT로 치환
sed 's/root/ROOT/g' data.txt		# 행마다 모든 root 패턴을 ROOT로 치환
sed -n 's/Feb/FFF/p' data.txt		# 치환이 발생한 행만 출력
sed -e 's/Feb/FEB/g' -e 's/linux/LINUX/g' data.txt	# 여러개 치환 수행
sed '/Feb/s/root/ROOT/g' data.txt	# Feb가 포함된 행에서 root 패턴을 ROOT로 치환

 

기타

sed '/media/a\-----------------------------' data.txt		# media가 포함된 행 뒤에 절취선 추가
sed '/media/i\-----------------------------' data.txt		# media가 포함된 행 앞에 절취선 추가
sed '5q' data.txt					# 5행까지 출력 후 sed 종료
반응형