次のディレクトリツリーがあるとします。
/home/xen/p.c
/home/dan/t.c
/home/jhon/l.c
...
etc (many more users)
次のようにカンマで区切られた(ユーザー名、cファイルのフルパス)リストを取得する必要があります。
xen,/home/xen/p.c
dan,/home/dan/t.c
...
etc
コマンドラインでこれを行うにはどうすればよいですか?
ベストアンサー1
GNUfind を使用して出力形式を指定できます。ファイルがユーザー自身によって生成されたと仮定すると、コマンドは次のようになります。
find /home/ -maxdepth 2 -type f -name '*.c' -printf '%u,%p\n'
man find
詳しくはこちらprintf
以下も使用できます。
find /home/ -maxdepth 2 -type f -name '*.c' -exec bash -c 'n="${1%/*}"; n="${n##*/}"; echo "$n",$1' _ {} \;