Mam następujący plik testowysed - Komentując linię dopasowanie konkretny ciąg i że nie jest już wykomentowane
AAA
BBB
CCC
stosując następujące sed mogę wypowiedzieć się na BBB linię.
# sed -e '/BBB/s/^/#/g' -i file
Chciałbym tylko skomentować linię, jeśli jeszcze nie ma numeru # na początku.
# sed -e '/^#/! /BBB/s/^/#/g' file
sed: -e expression #1, char 7: unknown command: `/'
Jakieś pomysły, w jaki sposób mogę to osiągnąć?
To działało, dziękuję! –
To zawsze wyedytuje pasującą linię, aby rozpocząć od pojedynczego #. Więc jeśli zaczyna się od trzech '# po tym poleceniu," wyczyści "je, aby zacząć od jednego' # '. Aby rozwiązać ten problem, jeśli jest to problem, po prostu zmień odpowiednio dopasowaną część (np. "Sed -e"/^ BBB/'...) –
' sed '/^# BBB/"' masz na myśli. Ale jeśli BBB jest gdzieś pośrodku, to nie zadziała. Istnieje opcja zapisu "sed"/^ # /! {/ BBB/s/^/# /} "', który zadziała lepiej, ale moje początkowe rozwiązanie jest o wiele prostsze, o ile znasz jego ograniczenia. – aragaer