fstab에서 sed를 사용하여 줄을 주석 처리하는 방법은 무엇입니까?

fstab에서 sed를 사용하여 줄을 주석 처리하는 방법은 무엇입니까?

fstab명령을 사용할 sed때 일부 줄에 주석을 달고 싶습니다 . 내가 논평해야 할 몇 줄은 다음과 같습니다.

172.0.0.1:/export/project/common /nfs/share nfs4 rw,bg,hard,nointr,rsize=131072,wsize=131072,proto=tcp
172.0.0.1:/export/project/share1 /nfs/shares1 nfs4 rw,bg,hard,nointr,rsize=131072,wsize=131072,proto=tcp

이 명령을 사용해 보았지만 작동하지 않습니다.

sed -i '/172.0.0.1:/export/project/common /nfs/share nfs4 rw,bg,hard,nointr,rsize=131072,wsize=131072,proto=tcp /s/^/#/' /etc/fstab_test
sed -i '/172.0.0.1:/export/project/share1 /nfs/shares1 nfs4 rw,bg,hard,nointr,rsize=131072,wsize=131072,proto=tcp /s/^/#/' /etc/fstab_test

답변1

이 시도,

sed -e '/[/]/common s/^/#/' /etc/fstab
sed -e '/[/]/share1 s/^/#/' /etc/fstab

이를 지정하면 /[/]common//common이 포함된 행만 선택됩니다.

작동하는 경우 파일 변경을 수행하려면 -e로 바꾸십시오.-i

당신은 이것을 할 수 있습니다awk

awk '/[/]common/{$0="#"$0} 1' /etc/fstab >/etc/fstab.tmp && mv /etc/fstab.tmp /etc/fstab 
awk '/[/]share1/{$0="#"$0} 1' /etc/fstab >/etc/fstab.tmp && mv /etc/fstab.tmp /etc/fstab 

이를 지정하면 /[/]common/ {$0="#"$0}/common이 포함된 행이 선택되고 행 시작 부분에 #이 배치됩니다.

관련 정보