줄을 복사한 다음 해당 줄의 첫 번째 항목을 주석 처리하는 방법

줄을 복사한 다음 해당 줄의 첫 번째 항목을 주석 처리하는 방법

행을 복사하고 이벤트 중 하나에 댓글을 달고 싶습니다. 이는 복사된 줄(주석 처리되지 않은 줄)을 변경하기 전에 복사본을 유지하는 것과 비슷합니다.

입력 파일:

Hi , can you help me here?

결과물 파일:

#Hi , can you help me here?
Hi , can you help me here?

답변1

sed파일의 각 줄에 대해 다음을 사용합니다.

sed 'h;s/^/#/p;g' < input-file > output-file

awk같은

awk '{print "#" $0 ORS $0}' < input-file > output-file

또는 다음을 사용하여 paste:

paste -d '#\n' /dev/null input-file input-file > output-file

다음이 포함된 경우 input-file:

foo
bar

결과는 다음과 같습니다.

#foo
foo
#bar
bar

더 보고 싶다면

#foo
#bar
foo
bar

그러면 다음과 같이 할 수 있습니다:

paste -d'#' /dev/null input-file | cat - input-file > output-file

답변2

모든 행에 대해 다음을 수행합니다.

$ sed -e 'h;G;s/^/#/' file


$ perl -pe '$_ = "#$_$_"' file 

특정 행을 제한합니다.

$ sed -e 'h;s/^\$AB/#&/p;g' file

$ perl -pe 's/^(\$AB.*)/#$1$1/s' file 

관련 정보