command line - Filter files according to owner under same directory - Ask Ubuntu


i writing script has common directory , under directory there files different owners.

how can filter files according owner files , parse them separately owner name filename:

/gen/comm_owner/a  /gen/comm_owner/b  

there more 20 owners more 60 files. expected output gen/comm_owner/a.txt, a.txt contains files, likewise b.txt. have tried awk , sed , able filter things how perform this?

find /some/path -type f -printf "%u/%p\n" | awk -f/ '{u=$1; sub($1"/", ""); print > u}' 
  • find's -printf option powerful. in case, tell print username , relative file path separated slash (e.g., muru/foo/bar (or use %p instead of %p, muru//some/path/foo/bar).
  • then, in awk, splitting on /, save first field (the username), remove input, , print input username.

example:

$ find /var/lib -type f -printf "%u/%p\n" | awk -f/ '{u=$1; sub($1"/", ""); print > u}'                                               $ ls colord  nobody  ntp  ptokax  root  systemd-timesync $ head ntp /var/lib/ntp/ntp.drift $ head nobody /var/lib/nfs/state $ head root /var/lib/dbus/machine-id /var/lib/os-prober/labels /var/lib/xkb/readme.compiled /var/lib/logrotate.status /var/lib/nfs/rmtab 

Comments

Popular posts from this blog

download - Firefox cannot save files (most of the time), how to solve? - Super User

windows - "-2146893807 NTE_NOT_FOUND" when repair certificate store - Super User

sql server - "Configuration file does not exist", Event ID 274 - Super User