awkフィールドから出力でLSコマンドを実行する方法
質問
これは、パラメーターとしてディレクトリを取得します。
#!/bin/bash
ls -l $1 |awk '$3!=$4{print $9}'
今私が必要とするのは、別のことをすることができることです ls -l
awkステートメントから見つかったファイルのみ。
ええ、それは馬鹿げているように聞こえます、そして私はこれを行うための他の3つの方法のように知っていますが、awkではありません。
解決
#!/bin/bash ls -l $1 | awk '$3!=$4{ system( "ls -l '$1'/" $9}'
他のヒント
awkシステムコマンドを使用してください:
ls -l $1 |awk '$3!=$4{system("ls -l " $9)}'
使用するコマンドはです xargs
.
man xargs
いくつかの手がかりを与えるべきです。
最初の調整が許可されている場合 ls -l
あなたはやろうとすることができます:
ls -ld "$1"/* |awk '$3!=$4{print $9}' | xargs ls -l
この場合 ls
ディレクトリにプレフィックスが表示されます。しかし、これがポータブルな動作であるかどうかはわかりません。
所属していません StackOverflow