"0" 문자가 포함된 모든 줄을 다른 줄로 바꾸려면 어떻게 해야 합니까?

"0" 문자가 포함된 모든 줄을 다른 줄로 바꾸려면 어떻게 해야 합니까?

다음과 유사한 줄이 포함된 파일이 있습니다.

0
0.1
0.0002
0
0.30

이 줄을 단일 0내용(예 0.0001: 소수점과 뒤에 숫자가 있는 줄)으로 바꾸고 싶습니다.

다음과 같은 변형을 시도했지만 sed아무것도 수행하지 않거나 소수점 이하의 0까지 모두 0으로 변경합니다.

sed 's/0/x/g' file
sed 's/^0/x/g' file
sed 's/0^/x/g' file
sed 's/^0^/x/g' file
sed 's/"0"/x/g' file
sed 's/[0]/x/g' file

sed단일 문자를 처리 할 수 없는 것 같습니다 0. 또한 replace해당 명령이 내 시스템에 존재하지 않습니다. 또 무엇을 할 수 있나요?

답변1

연속적으로 하나의 0을 바꾸려면 다음을 수행하십시오.

sed 's/^0$/x/'

^ 줄의 시작과 일치합니다.

$는 줄 끝과 일치합니다.

따라서 위 명령은 줄의 시작 부분과 일치하고 그 뒤에 0이 온 다음 줄의 끝 부분이 일치합니다.

답변2

awk를 사용하세요:

awk '{gsub(/^0$/,0.0001)};1' file 

관련 정보