지정된 행 번호와 열의 문자열 바꾸기

지정된 행 번호와 열의 문자열 바꾸기

4행에서 19823 뒤에 있는 "K" 문자를 바꾸고 싶지만 그 뒤의 "K" 문자는 바꾸고 싶지 않습니다.

19822SOL     OW60021   7.173   
19822SOL    HW160022   7.230   
19822SOL    HW260023   7.124   
19823K        K60024   8.427   

따라서 새 파일은 다음과 같아야 합니다.

19822SOL     OW60021   7.173   
19822SOL    HW160022   7.230   
19822SOL    HW260023   7.124   
19823exc      K60024   8.427   

현재 나는 sed 명령을 사용하여 4행의 K를 ex로 바꾸는 방법을 알고 있습니다.

sed -i "4s/K/exc/g" <newfile> 

하지만 선택할 열을 지정하는 방법을 모르겠습니다.

답변1

특정 항목에 관한 것이라면 플래그 는 한 번만 교체되므로 플래그 K를 제거해 g도 괜찮습니다 . 그러므로:sedK

sed -i "4s/K/exc/" <newfile> 

즉, 4행의 첫 번째 항목을 대체합니다 K.exc

답변2

첫 번째 항목을 원하면 플래그 K를 제거하세요 g.

sed -i '4s/K/exc/' <newfile> 

두 번째, 세 번째 등을 바꾸려면 대신 , K를 사용하십시오 .234g

sed -i '4s/K/exc/2' <newfile>
sed -i '4s/K/exc/3' <newfile>

K세 번째부터 마지막까지 모든 s를 교체하려는 경우 (GNU sed에서만 지원됨):

echo 'KKKKKK' | sed s/K/E/3g
KKEEEE

그런데 "셸 변수, 명령 확장 등을 전달하는 문자열에 실제로 삽입하려는 경우가 아니면 큰따옴표( )를 사용하지 마십시오 sed.

관련 정보