다음 줄을 포함하는 파일이 있습니다
This is an PLUTO
This is PINEAPPLE
This is ORANGE
This is RICE
각 줄 위에 새 줄을 만들고 다음과 같이 새 줄 출력에 마지막 문자열을 삽입하려면 어떻게 해야 합니까?
PLUTO:
This is an PLUTO
PINEAPPLE:
This is an PINEAPPLE
ORANGE:
This is an ORANGE
RICE:
This is an RICE
감사해요
답변1
awk
줄 자체를 인쇄하기 전에 콜론이 뒤따르는 각 줄의 마지막 필드를 인쇄하는 데 사용됩니다 .
$ awk '{ print $NF ":"; print }' file
PLUTO:
This is an PLUTO
PINEAPPLE:
This is PINEAPPLE
ORANGE:
This is ORANGE
RICE:
This is RICE
단일 print
문을 사용하지만 레코드 구분 기호(개행)와 (줄)을 명시적으로 인쇄하는 $0
변형입니다 .
awk '{ print $NF ":" ORS $0 }' file
다양한 용도 printf
:
awk '{ printf("%s:\n%s\n", $NF, $0) }' file
사용 sed
:
$ sed 'h; s/.* //; s/$/:/; G' file
PLUTO:
This is an PLUTO
PINEAPPLE:
This is PINEAPPLE
ORANGE:
This is ORANGE
RICE:
This is RICE
주석이 달린 sed
스크립트:
h; # Copy the pattern space (the current line) into the hold space (general purpose buffer)
s/.* //; # Remove everything up to the last space character in the pattern space
s/$/:/; # Add colon at the end
G; # Append the hold space (original line) with an embedded newline character
# (implicit print)
답변2
이것을 시도해보세요
awk '{$0=$NF":\n"$0}1' file