다음을 사용하여 파일의 첫 번째 항목을 바꾸려고 합니다 sed
.
sed -i s/he/He/ dummy.txt
첫 번째 항목을 바꾸는 대신 모든 항목을 바꿉니다(아무것도 아닌 경우라도) /g
.
문서에 따르면 첫 번째 항목만 교체해야 합니다.
버전은 sed
다음과 같습니다:
GNU sed version 4.1.5
내가 뭐 놓친 거 없니? 아니면 다른 구현이 다르게 동작합니까 sed
?
답변1
sed는 입력을 한 줄씩 처리합니다. 수정자는 /g
한 줄의 모든 항목을 바꾸는지 아니면 첫 번째 항목만 바꾸는지에 영향을 줍니다.
echo hehe | sed s/h/H/
echo hehe | sed s/h/H/g
파일의 첫 번째 항목만 바꾸려면 다음과 같이 사용하십시오.
s/h/H/ # Replace.
ta # Go to a if s/// worked.
b # Otherwise, start the next cycle.
:a { n # Process the next line.
ba # Go to a.
}