줄이있는 파일이 있다고 가정합니다.
aaa = bbb
이제 그것들을 다음과 같이 바꾸고 싶습니다 :
aaa = xxx
다음과 같이 할 수 있습니다.
sed "s / aaa = bbb / aaa = xxx / g"
이제 다음과 같이 몇 줄의 파일이 있습니다.
aaa = bbb aaa = ccc aaa = ddd aaa = [다른 것]
이 모든 줄 aaa=[something]
을 sed 를 aaa=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