2013-04-18 9 views

Odpowiedz

7

awk -F, 'NR<101{$2="e";}1' OFS=, file

NR wbudowanej zmiennej daje albo całkowita liczba rekordów przetwarzanych lub numer linii w zależności od zastosowania . W powyższym przykładzie awk zmienna NR ma numer wiersza. Po wstawieniu wzorca NR<101 akcja stanie się prawdziwa dla pierwszych 100 linii. Gdy wartość jest nieprawidłowa, domyślnie ustawiona jest na 1, co spowoduje wydrukowanie pozostałych linii bez zmian.

+1

@ Jaypal..what jeśli muszę zastosować powyższy warunek za 100-200 wierszy pliku csv – user752590

+0

@ user752590 Put wzór jako '-F awk„NR> 99 && NR <201 {$ 2 = "e";} 1 'OFS =, file' –

+0

Jak mogę określić, że chcę dołączyć e do tylko niektórych wierszy i tylko niektórych kolumn? Na przykład chcę dodać e do kolumn większych niż 10 w wierszu 1? – discipulus

5

spróbuj tego:

awk -F, 'NR<=100{$2="e"}1' OFS=, file 
+1

Lub nawet FNR może być używany, jeśli wiele plików jest podanych jako argument. Ale wynik będzie jednym wielkim strumieniem. – TrueY

+0

Jak mogę określić, że chcę dołączyć e do tylko niektórych wierszy i tylko niektórych kolumn? Na przykład chcę dodać e do kolumn większych niż 10 w wierszu 1. – discipulus

Powiązane problemy