sed는 몇 줄의 댓글을 달았습니다.

sed는 몇 줄의 댓글을 달았습니다.

test.txt다음 내용이 포함된 텍스트 파일이 있습니다 .

foo
configure
top
start
fun
bar
hello

출력이 다음과 같도록 2, 5, 7행을 주석 처리하고 싶습니다.

foo
#configure
top
start
#fun
bar
#hello

2, 3, 4, 5, 6, 7행을 사용하면 sed -i "2,7 {s/^/#/}" test.txt주석이 표시됩니다. 특정 줄 번호만 주석 처리되도록 하는 방법은 무엇입니까? 도움을 주셔서 감사합니다.

답변1

2,7당신이 지정하는 대로범위표현식이 적용되는 줄 수입니다. 이 경우 특정 행 3개만 선택하면 됩니다.

sed -e '2s/^/#/' -e '5s/^/#/' -e '7s/^/#/'  file

또는 실제 주석 작업을 sed편집 코드의 특정 위치로 분리합니다( #줄 시작 부분에 a를 추가하는 것보다 더 복잡한 작업을 수행해야 하는 경우에만 매우 유용합니다).

sed -e 2bc -e 5bc -e 7bc -e b -e :c -e 's/^/#/' file

명령 b은 레이블(여기서는 c정의 포함 :c)로 분기되거나 레이블이 지정되지 않은 경우 스크립트 끝으로 분기됩니다.

또는 다음과 같이 awk:

awk 'NR == 2 || NR == 5 || NR == 7 { print "#" $0; next } 1'  file

관련 정보