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