입력 파일은 다음과 같습니다
H1 O1 C1 H2 H3 C2 H4 H5 O2 C3 H6 H7 C4 H8 H9 O3 C5 H10 H11 C6 H12 ......
다음 출력 파일을 원합니다
z(A) H1 O1 C1 H2 H3 C2 H4 H5 O2 C3 H6 H7 C4 H8 H9 O3 C5 H10 H11 C6 H12 ...... OW HW1 HW2
줄 시작 부분에 "z(A)"가 포함되고 줄 끝 부분에 "OW HW1 HW2"가 포함됩니다.
답변1
sed -e '1s/^/z(A) /' -e '1s/$/ OW HW1 HW2/' < input > output
1
첫 번째 줄이고, s
교체 줄이고, ^
줄의 시작이고, $
줄의 끝입니다.
답변2
awk 'NR==1{print "z(A) " $0 " OW HW1 HW2"; next}1'
또는
awk 'NR==1{printf "z(A) %s OW HW1 HW2\n", $0; next}1'
또는
awk 'NR==1{$0="z(A) " $0 " OW HW1 HW2"}1'
답변3
동일한 파일을 유지하려면 다음을 시도해 보십시오.
printf '%s' 'Z(A) ' "$(<infile)" 'OW HW1 HW2' >infile
답변4
스크립트 가능한 편집기를 사용할 수도 있습니다 ed
!
printf '%s\n' '1s/^/z(A) /' '1s/$/ OW HW1 HW2/' 'wq' | ed -s filename
그러면 다음과 같이 개행으로 구분된 세 가지 명령이 인쇄되며 ed
, 주어진 내용을 자동으로 편집하도록 요청합니다 filename
.
1s/^/z(A) /
-sed
답변에 표시된 대로 1번째 줄에서 줄의 시작 부분을 text 로 바꿉니다z(A)
.1s/$/ OW HW1 HW2/
-sed
답변에 표시된 대로 1행에서 줄 끝을 text 로 바꿉니다OW HW1 HW2
.wq
-- 변경된 파일을 다시 디스크에 쓰고 종료합니다.