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 > tool
wariantu 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ć cat
ze pv
jeśli jest zainstalowany).
cat
przesyłać do narzędzi takich jakawk
lubsed
podobnych, ponieważ można podać nazwę pliku jako argument.