2

ディレクトリ内のディレクトリ以外のファイルのリストを取得したい。findコマンドは機能していますが、オプションが機能していません。maxdepth 1おそらく、Aix でサポートされていないためです。

このコマンド:

find . -maxdepth 1 -type f  

戻り値:

find: bad option -maxdepth

私はこのコマンドを使用しました:

ls -l | grep ^- | awk '{print $9}'

ただし、ファイル名にスペースが含まれている場合、これは機能しません。これを解決する方法はありますか?

4

2 に答える 2

1

あなたの最後の試みをやめて、これはうまくいくようです:

ls -l | grep ^- | awk '{for(i=1;i<9;i++) $i="";print}' | sed 's/^        //'

もっと良い方法があるかもしれませんが (あるといいのですが!)、これは最初の 8 つのフィールドを縮小し、8 つのスペースを残してから行の残りを残します (したがって、ファイル名のスペースは問題ありません)。 .

私はこの bash バージョンを好みます。

for f in *; do if [ -f "$f" ]; then echo "$f"; fi; done

ksh(私はよく知りません)のためにそれを微調整できると確信しています。

他の誰かがもっと簡単なことを知っていることをまだ望んでいます。

于 2012-06-27T07:47:18.927 に答える
0

これは、名前に複数のスペースを含むファイルに対して機能するようです。それを単一のパイプに減らします。
私は個人的にもっとエレガントなものを見つけたいと思っています。

ls -l | awk '/^-/ {for(i=9;i<=NF;i++){printf "%s ", $i}print "";}'
于 2014-04-14T19:53:32.583 に答える