2011-11-09 13 views

Odpowiedz

25
grep -v '^string' yourfile.txt > stripped.txt 
+0

jak o z tego samego pliku? – t3hcakeman

+0

Nie można tego zrobić z grep. ale możesz wyprowadzić do pliku tymczasowego, a następnie 'mv tempfile origfile'. Jeśli chcesz prawdziwą edycję w miejscu, musisz użyć sed/perl/awk. –

+0

jak bym ich wtedy użył? : D – t3hcakeman

26

Aby zrobić to w miejscu, jeśli sed obsługuje opcję -i, można zrobić:

 
sed -i '/^string/d' input-file 
+2

sed spodziewa się rozszerzenia pliku do tworzenia kopii zapasowych przy użyciu '-i', w OS X musisz być bardzo pedantyczny, więc jawnie używaj pojedynczych cudzysłowów:' sed -i '' '/^string/d' input-file' –

+2

W systemie OSX domyślny "sed" nie obsługuje nawet '-i'! Moją osobistą preferencją jest nigdy nie używać '-i' i zamiast tego wykonywać przekierowania za pomocą powłoki. –

+0

Nie potrzeba "-e"? – Mausy5043

0

sed i grep w odpowiedziach brakuje ich przyjaciela awk:

awk '!/^string/' inputfile > resultfile 
+1

Potrzebuję, aby był w tym samym pliku – t3hcakeman

0

można użyć Vima w trybie Ex:

ex -sc g/^string/d -cx file 
  1. g zaznaczyć wszystkie pasujące wiersze

  2. d usuwać

  3. x zapisz i zamknij

Powiązane problemy