-rwxまたはdrwxで始まり、任意の数で終わる行をgrepするファイルがあります。
私はこれを持っていますが、それはまったく正しくありません。何か案は?
grep [^.rwx]*[0-9] usrLog.txt
あなたは正しい軌道に乗っているように見えます... ^
文字は行頭と一致し、$
文字は行末と一致します。ジョナサンのパターンはあなたのために働くでしょう...ただあなたにその背後にある説明をしたかったです
キャレット(^)が角かっこ内で異なる動作をするだけでなく、角カッコの外側に配置すると逆の結果になることに注意してください。キャレットを配置すると、括弧内に配置したコンテンツで始まらないすべての文字列が検索されます。また、アスタリスクの前にピリオドをブラケットの間に配置することもできます。これは、grepと同様に、「ワイルドカード」としても機能します。
grep ^[.rwx].*[0-9]$
これはあなたのために働くはずです、私はいくつかのポスターが同様に効果的な方法である彼らの表現でキャラクタークラスを使用していることに気づきました少しずつ変更が加えられるため、理解が深まります。そうでなければ、どうやって学ぶことができますか?
おそらくegrepが必要でしょう。試してください:
egrep '^[d-]rwx.*[0-9]$' usrLog.txt
ls -l
の出力を解析していますか?
あなたが、あなたがファイル名を取得したいだけなら
find . -iname "*[0-9]"
UsrLog.txtが何か/他の人によって作成され、絶対にこのファイルを使用する必要があるため選択の余地がない場合、他のオプションには以下が含まれます。
awk '/^[-d].*[0-9]$/' file
ルビー(1.9+)
Ruby -ne 'print if /^[-d].*[0-9]$/' file
Bash
while read -r line ; do case $line in [-d]*[0-9] ) echo $line; esac; done < file