Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: skrypt wyciągania danych z /etc/passwd  (Przeczytany 2326 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 :)