Chciałbym wiedzieć, jaki wzór mogę użyć w sed do wprowadzania zmian w pierwszej linii ogromnych plików (~ 2 GB). Preferencja dla sed jest tylko dlatego, że zakładam, że musi być szybszy niż skrypt Python lub Perl.Jak mogę wprowadzić zmiany tylko do pierwszego wiersza pliku?
Pliki mają następującą strukturę:
field 1, field 2, ... field n
data
a biorąc pod uwagę prawdopodobieństwo konieczności spacje w identyfikator dla każdego pola, muszę wymienić każdą przestrzeń przez podkreślenie w ten sposób:
**BEFORE**
the first name,the second name,the first surname,a nickname, ...
data
**AFTER**
the_first_name,the_second_name,the_first_surname,a_nickname, ...
data
Wszelkie wskaźniki do właściwego wzoru do użycia lub inne rozwiązanie skryptowe byłoby świetne.
Że re potrzebuje 'g' na końcu, aby zastąpić wszystkie spacje w linii, a nie tylko pierwsze. –
perl -i -pe 's// _/g jeśli 1 .. 10' ??? Wow, nigdy nie słyszałem o tej składni w "if 1..10". Czasami denerwuje mnie Perl. Dlaczego wszystkie te wyjątki? Dlaczego nie po prostu użyć prostego, jeśli ($. <11)? – Frank
@leon: wow, bardzo schludna sztuczka !, dziękuję. –