Programming

전체 라인을 sed로 바꾸는 방법?

procodes 2020. 8. 10. 20:32
반응형

전체 라인을 sed로 바꾸는 방법?


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

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의 변경 라인을 사용하여이를 수행 할 수도 있습니다.

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/'

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

사용하고 싶다면 awk이것도 작동합니다

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

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

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

참고 URL : https://stackoverflow.com/questions/8822097/how-to-replace-whole-line-with-sed

반응형