[완료] 특정 문자열을 포함하는 라인의 맨마지막 필드를 수정할 수 있는 방법이 없을까요???
/etc/fstab을 변경하려고 하는데요 ( 부팅시 fsck 되지 않게 )
특정문자열을 포함하는 ( 데비안 UUID , 센트 LABEL ) 라인의 마지막 필드의 숫자를 0으로 바꾸고 싶습니다.
awk나, sed를 사용해서는 안나오는거 같은데 다른 방법이 혹시 있을까요 ???
( 쉘스크립트로 vi 안열구요~ )
찾아봐도 잘 안나오는거 같네요ㅠㅠ
답변 부탁드립니다.
*** 데비안 ***
UUID=~!@#$%^&*()1324123 / ext3 errors=remount-ro 0 1
UUID=~!@#$%^&*()4123412 /boot ext3 defaults 0 2
UUID=~!@#$%^&*()125235 /var ext3 defaults 0 2
UUID=~!@#$%^&*()134124 none swap sw 0 0
*** 센트 ***
LABEL=/ / ext3 defaults 1 1
LABEL=/var /var ext3 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
capture
:%s/\(^.*\)\t[^\t]\+$/\1\t0/
vim에서라면 capture group을 통해 해결할 수 있습니다.
vi를 안열고 다른방법이 없을까요??
네 답변 감사합니다.
vi를 안열고 할수 있는 방법이 있을까요???
using sed command
would change the last field(tabed or spaced digit) to tabed 0
and make a backup file /etc/fstab.bak
more correct answer would be
finds lines starting with UUID= or LABEL=, and
changes the last tabbed or spaced digit into tabbed 0.
awk '{ if($0 ~ "^UUID") $NF =
awk '{ if($0 ~ "^UUID") $NF = 0; print; }' /etc/fstab
UUID로 시작하는 라인의 마지막 필드는 0으로 바꿔서 출력,
UUID로 시작하지 않는 라인은 그대로 출력
감사합니다.
이 방법으로 해결했습니다...^^
정규식 옵션 더 공부해봐야겠네요.ㅎㅎ
댓글 달기