0

私はこれを持っています:

ls */file
dir1/file dir2/file dir3/file

ただし、次のように、最初のディレクトリ名だけが必要です。dir1

これは私がしました:

IFS="/" read foo bar <<< "$(ls */file 2>/dev/null)"
echo $foo
dir1

そしてそれは機能しますが、今では をsubshell超える展開に問題がありsshます。これを行うためのよりエレガントな方法 (subshellsまたはなしsed) はありますか?

そうでない場合は、まったく別の問題に関する質問を投稿しsubshellsますssh

4

5 に答える 5

0

フォルダの名前だけが必要な場合は、次を使用できます。

$ls -1 | awk 'NR==n'

は最初のディレクトリn=1です。値を変更しnて n 番目のディレクトリを取得できます。

于 2014-06-05T07:28:37.157 に答える
0

トリッキーな二重引用符を使用できます! そのようです:

LIST=`ls */file`
echo "$LIST" | cut -d/ -f1

また

echo "$LIST" | awk -F/ {'print $1'}
于 2014-06-05T07:12:40.497 に答える