
ls -l とパイプを使用してディレクトリ内の 8 番目のファイル名を表示したいと考えています。たとえば、ls -l | wc -1 ではカウントは表示されますが、返されるのはディレクトリ リスト内の 8 番目のファイル名です。grep とワイルドカードを調べましたが、どのコマンドで必要な結果が得られるかがまだわかりません。
ありがとう
答え1
試す
ls -l | head -n 9 | tail -n 1
cut
名前だけが必要な場合は最後に使用できます
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8
tr
複数のスペースとタブを1つのスペースに置き換えることです
答え2
もう一つの方法はこれです。
ls -l | sed -n '9p'
ファイル名またはディレクトリ名のみが必要な場合は、これを使用します。
ls -l | sed -n '9p' | awk '{print $9}'
jcubic 本当にこれがあなたが望んでいたものですか?
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8
彼はこのようなファイル名またはディレクトリ名を望んでいると思います。
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f9
答え3
ls | awk 'NR==8'
- あなたしない1列の出力が必要な場合
ls -l
や、ls -1
出力をパイプに投げる場合(例:ls 出力におけるファイル名間のマジックセパレーターは何ですか?)。 NR==8
8 行目に対してのみ true を返し、awk
デフォルトのアクションはそれを印刷することです。
答え4
使わないで-l
ls | 頭 -8 | 尾 -1
ファイル名を取得し、ls
ファイルを と同じように順序付けますls -l
。