zdravím mám takový problém, řeším takovou úlohu, ale nějak to furt nemůžu doladit.
Chci udělat skript, který pomocí filtru awk (jedním vyvoláním) vypíše z „ypcat passwd“ celé záznamy vybraných uživatelů s uvedenými úpravami:
1. Vybere všechny uživatele s UID <= 30000 nebo jejichž uživatelské jméno neodpovídá vzoru „ppppppn“, kde p je písmeno a n je číslice.
ypcat passwd | awk -F: '$3<=30000 || $1 !~ /[a-zA-Z]\{6\}[1-9]/' - tohle funguje bez problému
2. U těchto vybraných, jestliže uživatelské jméno neodpovídá vzoru „ppppppn“, prohodí v cestě k domovskému adresáři první 2 jména (např. /home/Blabla/.... -> /Blabla/home/........) a výsledný záznam vypíše, jinak vybraný záznam vypíše beze změny.
ypcat passwd | awk -F: '/\(.*\):\/home\/.*\/\(^[a-zA-Z]\{6\}[1-9])/\1:\/.*\/home\/\2/' {print $0} .... nevíte někdo, kde dělám chybku?