2011-10-13 2 views
4
# deb http://archive.canonical.com/ubuntu lucid partner 
# deb-src http://archive.canonical.com/ubuntu lucid partner 

위의 행 /etc/apt/sources.list에서. 줄 수가 있습니다. bash 스크립트를 사용하여 2 줄 이상의 주석을 제거하는 방법. 내가bash 스크립트를 사용하는 비언어적인 라인

sed -e "s/^# deb/deb/g" /etc/apt/sources.list 

대신

sed -e "s/^# //g" /etc/apt/sources.list 

말할 것

답변

5

을 대체 할 sed를 사용할 수 있기 때문에 두 번째 나오지 명령 일 것 중 하나의 주석 라인과 같은 :

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to 
# newer versions of the distribution. 
+1

줄의 시작 부분에 고정되어 있다면'g' 옵션을 사용할 필요가 없습니다 - - 한 번만 일치 할 수 있습니다. –

1

당신은 #에게

sed -e "s/^# //g" /etc/apt/sources.list 
+0

단지 mathc를 한 번만 쓰고 싶다면 sed 명령에'g'를 남길 수 있습니다. 확실하지는 않지만 내 sed는 sed 매개 변수로'-i'를 추가로 사용하여 변경 사항을 수용합니다. 원래 파일을 저장하고 싶다면'sed -i.bak -e '....와 같이 sed를 호출해야합니다.'FileName' – f4m8

2

accepted answer from @m0ntassar 작품,하지만 하나가 필요 액세스 또는 원하지 않는 저장소에 대한 액세스를 열 수 # deb로 시작하는 모든 라인의 주석을 해제합니다. # deb : deb로 시작하지만,이 같은 #으로 주석 처리되어

  1. 라인이 :

    대신 내가있는 라인을 대상으로 추천 할 것입니다.

  2. 그리고 그 라인은 이고, 구체적으로partner으로 끝납니다.

그래서 다음과 같이 내 제안 Sed의 명령이 될 것이다 다음 -e 명령을 명령

sed -e "/^#.*deb.*partner$/s/^# //g" /etc/apt/sources.list 

당신에게 출력을 보여줄 것이다, 그러나 -i 플래그는 위치에 파일을 편집합니다 :

sudo sed -i "/^#.*deb.*partner$/s/^# //g" /etc/apt/sources.list 

해당 위치에서 편집 이후 sudo 권한으로 실행해야하므로이 예제에서는 sudo으로 실행합니다.

관련 문제