Nowe posty

Autor Wątek: skrypt wyciągania danych z /etc/passwd  (Przeczytany 2327 razy)

skream

  • Gość
skrypt wyciągania danych z /etc/passwd
« dnia: 2014-09-28, 10:45:40 »
Witam
Potrzebuję skryptu, który wyciągnie z pliku /etc/passwd wszystkie numery grup jakie są i na ich podstawie posegreguje wszystkie linie według tych właśnie grup zapisując dane w plikach. Dla przykładu linie w której grupa to 100, będą zapisywane do pliku o nazwie 100.txt

Żeby nie było, że liczę na gotowe - zrobiłem coś, ale nie działa jak należy do tego jest nie optymalne i sprawdzenie trwa trochę długo - co dyskwalifikuje to rozwiązanie.


#!/bin/bash
for ((i=99; i<120; i++)); do
while read line
do echo "$line"|grep :$i >>zapis/$i.txt
done done

alvaro

  • Gość
skrypt wyciągania danych z /etc/passwd
« Odpowiedź #1 dnia: 2014-09-28, 15:50:49 »
Poniższy skrypt sortuje użytkowników po ich id a następnie zapisuje pozycje wg id grupy do odpowiednich plików.
#!/usr/bin/env bash

sort -t':' -k 3 -n /etc/passwd | while read -r line; do echo "$line" >> $(awk -F':' '{print $4 ".txt"}' <<< "$line"); done
Wersja skryptu bez sortowania:
#!/usr/bin/env bash

while read -r line; do echo "$line" >> $(awk -F':' '{print $4 ".txt"}' <<< "$line"); done

skream

  • Gość
skrypt wyciągania danych z /etc/passwd
« Odpowiedź #2 dnia: 2014-09-28, 15:59:21 »
Dzięki wielkie, oczywiście o to chodziło :)