Jako użytkownik reputacji 6: Jeśli którykolwiek z poniższych ankiet pomógł ci, nie zapomnij kliknąć szarego ☑ po lewej stronie jego tekstu, co oznacza Tak, ta odpowiedź jest prawidłowa ! ;-)
grepdopasuje dowolny znak i zakończy działanie po pierwszym dopasowaniu, tj. grepwypisze pierwsze wiersze wszystkich plików wejściowych i zapisujemy je w out.txt.
for f in*.txt;do<"$f" read line; printf "$line\n">>new.txt;done
*.txtjest rozwinięty do listy folderów / plików kończących się .txtna w bieżącym katalogu roboczym (ponieważ są tylko pliki, których foldery kończą .txtsię, nie są problemem);
<"$f" read lineodczytuje jeden wiersz ze ścieżki pliku zapisanej w fi zapisuje go line;
% cat foo.txt
line #1 in foo
line #2 in foo
line #3 in foo
% cat bar.txt
line #1 in bar
line #2 in bar
line #3 in bar
% for f in *.txt; do <"$f" read line; printf "$line\n" >>new.txt; done
% cat new.txt
line #1 in bar
line #1 in foo
Innym podejściem do AWK jest nakazanie AWK wydrukowania, ale natychmiast przejście do następnego pliku
tmp:$ touch file1 file2 file3
tmp:$ printf "Line 1 \n Line 2" | tee file1 file2 file3
Line 1
Line 2
tmp:$ awk '{print;nextfile}' file1 file2 file3
Line 1
Line 1
Line 1
sedumożliwia także drukowanie określonych linii. Tutaj połączyłem to zfind
tmp:$ find . -name "file*" -exec sed -n '1p' {} \;
Line 1
Line 1
Line 1
I perl:
tmp:$ find . -name "file*" -exec perl -ne 'print if 1..1' {} \;
Line 1
Line 1
Line 1
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.