'p'
私の使命は、名前が文字で始まる属性を持つファイルのリストを消費して出力することです。ls
grep
次のファイルのリストを表示するために使用していますが、アルファベットファイルのみをls -Rl
出力する方法がわかりません。'p'
ls -lR | grep -v :$ | grep -v total | grep -v "^$"
答え1
あなたの質問から重要な内容を欠かさない限り、単に次のようにこれを行うことができると言いたいと思います。ファイルグロービング:
ls -l p*
このコマンドは、で始まるファイルとディレクトリを一覧表示しますp
。使用する必要はありませんgrep
。
答え2
コーディング方法:
ls -Rl | awk '/^-/ && $NF ~/^p/'
ファイルリストは、次の2つの条件が満たされている場合にのみ印刷されます。
/^-/
行はハイフンで始まります。$NF ~ /^p/
最後の列はpで始まります。 (ファイル名にスペースがない場合のみ)
find
構文解析の代わりにコマンドを使用することをお勧めします。ls
find . -type f -name "p*" -ls
答え3
OPで述べたように、grepを使用してプロパティを表示します。 GNU grepを使用してください:
ls -Rlp | grep -v / | grep -P "(?<=:[0-9]{2}[[:blank:]])p.*"