전체 줄을 sed로 바꾸는 방법? 바꾸고 싶습니다 : aaa = xxx 다음과 같이 할

줄이있는 파일이 있다고 가정합니다.

aaa = bbb

이제 그것들을 다음과 같이 바꾸고 싶습니다 :

aaa = xxx

다음과 같이 할 수 있습니다.

sed "s / aaa = bbb / aaa = xxx / g"

이제 다음과 같이 몇 줄의 파일이 있습니다.

aaa = bbb
aaa = ccc
aaa = ddd
aaa = [다른 것]

모든aaa=[something]sedaaa=xxx사용하여 어떻게 바꿀 수 있습니까?



답변

이 시도:

sed "s/aaa=.*/aaa=xxx/g"


답변

sed의 change line을 사용하여이를 수행 할 수도 있습니다.

sed -i "/aaa=/c\aaa=xxx" your_file_here

이것은 통과하고 aaa=테스트 를 통과하는 모든 줄을 찾습니다. 즉, 줄에 문자가 포함되어 있음을 의미합니다 aaa=. 그런 다음 전체 행을 aaa = xxx로 바꿉니다. ^테스트 시작 부분에를 추가 하여 시작하는 줄만 얻을 수 aaa=있지만 그 결과는 본인에게 달려 있습니다.


답변

이처럼 :

sed 's/aaa=.*/aaa=xxx/'

aaa=가 라인의 시작 부분에 있음을 보장하려면 다음을 수행하십시오.

sed 's/^aaa=.*/aaa=xxx/'


답변

사용하고 싶다면 awk이것도 효과가 있습니다.

awk -F= '{$2="xxx";print}' OFS="\=" filename


답변

sed -i.bak 's/\(aaa=\).*/\1"xxx"/g' your_file


답변

이것은 당신을 위해 일할 수 있습니다 :

cat <<! | sed '/aaa=\(bbb\|ccc\|ddd\)/!s/\(aaa=\).*/\1xxx/'
> aaa=bbb
> aaa=ccc
> aaa=ddd
> aaa=[something else]
!
aaa=bbb
aaa=ccc
aaa=ddd
aaa=xxx


답변