Mam przykładowy plik / etc / passwd, taki jak ten:
tom:x:1000:1000:Work:/home/tom:/bin/bash
george:x:1000:1000:Work:/home/george:/bin/bash
bla:x:1000:1000:Work:/home/bla:/bin/bash
boo:x:1000:1000:Work:/home/boo:/bin/bash
bee:x:1000:1000:Work:/root/list:/bin/bash
Próbuję wyświetlić listę wszystkich użytkowników z folderem domowym /home/.
napisałem
cat ~/Desktop/e.txt |awk -F ":" '{if ($6 ~/^/home/) print $1;}'
gdzie e.txt to tekst, który tutaj skopiowałem.
Rozumiem, że występuje problem z odwrotnym ukośnikiem, który jest znakiem ucieczki, ale jak to naprawić, aby móc wymienić je w jednym wierszu polecenia?
grep home e.txt | cut -d ":" -f 1. Gratulujemy nagrody UUOC. Nie jest to jednak dobre rozwiązanie. Co się stanie, jeśli istnieje usługa „homebackups”, która działa pod osobnym użytkownikiem nazwanym na cześć demona? To fałszywie pozytywny wynik.
cat > toolwariantu takich linii poleceń, ponieważ można poprawić przejrzystość, utrzymując przepływ od lewej do prawej wejściowego przetwarzania wyjściowego łańcucha rurowego. To jest mniej wydajny, ale prawie zawsze minimalnie tak. To również sprawia, że dodanie paska postępu w stosownych przypadkach i użyteczne, gdy uruchomiony interaktywnie bardzo oczywiste (wystarczy wymienić catze pvjeśli jest zainstalowany).
catprzesyłać do narzędzi takich jakawklubsedpodobnych, ponieważ można podać nazwę pliku jako argument.