다음과 같은 파일이 있습니다.
A3 124.406526 8.281803
A3' 125.000684 8.389677
K4 123.072842 8.166373
K4' 120.092553 8.269080
첫 번째 열에 문자를 추가하고 싶습니다. 파일은 다음과 같아야 합니다.
A3N-H 124.406526 8.281803
A3'N-H 125.000684 8.389677
K4N-H 123.072842 8.166373
K4'N-H 120.092553 8.269080
awk나 sed를 통해 간단한 방법으로 이 작업을 어떻게 수행할 수 있나요?
답변1
그리고 sed
:
sed -E 's/^([^[:blank:]]+)/\1N-H/' file.txt
([^[:blank:]]+)
첫 번째 필드(^
)와 일치하고 캡처된 그룹에만 넣습니다.교체 시
N-H
첫 번째 필드에 추가하고,\1N-H
그리고 awk
:
awk '{sub("$", "N-H", $1)}; 1' file.txt
sub("$", "N-H", $1)
첫 번째 필드( )의 끝을$
로 바꾸십시오N-H
. 이는 반드시 내부 추가 작업을 의미합니다.1
true
(수정된) 레코드를 인쇄할 수 있는 자리 표시자
예:
% cat file.txt
A3 124.406526 8.281803
A3' 125.000684 8.389677
K4 123.072842 8.166373
K4' 120.092553 8.269080
% sed -E 's/^([^[:blank:]]+)/\1N-H/' file.txt
A3N-H 124.406526 8.281803
A3'N-H 125.000684 8.389677
K4N-H 123.072842 8.166373
K4'N-H 120.092553 8.269080
% awk '{sub("$", "N-H", $1)}; 1' file.txt
A3N-H 124.406526 8.281803
A3'N-H 125.000684 8.389677
K4N-H 123.072842 8.166373
K4'N-H 120.092553 8.269080
답변2
한 문장으로 요약하면 다음과 같습니다.
awk '$1=$1"N-H"'