공통 패턴이 있는 경우 문자열을 바꿉니다.

공통 패턴이 있는 경우 문자열을 바꿉니다.

다음과 같은 파일이 있습니다.

0/1:34:89:09    0/0:985:083:67 0/1:687:90887:975    0/1:54:79:25    0/0:5:83:67 0/1:67:9087:97  0/1:574:779:225 0/0:275:73:627 0/1:67:47:77

원하는 파일이 다음과 같이 보이도록 0/0시작하는 열을 바꾸고 싶습니다 .homo

0/1:34:89:09    homo 0/1:687:90887:975  0/1:54:79:25    homo 0/1:67:9087:97 0/1:574:779:225 homo 0/1:67:47:77

답변1

확장자에 관계없이 이 처리에서 모든 입력 파일이 동일하게 적용되므로 "homo"는 "동일"을 의미한다고 가정합니다.

sed -iBAK 's_\(0/0:[0-9]\+:[0-9]\+:[0-9]\+\)_homo_g' text.txt

-iBAK원본 파일을 백업하려면 BAK 접미사를 사용하세요 .

답변2

사용 sed -r 's|0/0[^ $]+|homo|g':

$ echo "0/1:34:89:09 0/0:985:083:67 0/1:687:90887:975 0/1:54:79:25 0/0:5:83:67 0/1:67:9087:97 0/1:574:779:225 0/0:275:73:627 0/1:67:47:77 0/0:275:73:628" | \
sed -r 's|0/0[^ $]+|homo|g'
0/1:34:89:09 homo 0/1:687:90887:975 0/1:54:79:25 homo 0/1:67:9087:97 0/1:574:779:225 homo 0/1:67:47:77 homo

관련 정보