2017-11-20 17 views
0

スクリプトから見つかったファイルを "ファイルサイズ - パス"としてリストしようとしています。私のスクリプトがフィルタリングする必要があるのは、2つのパラメータを与え、最初のパラメータが "-u"であると、ファイルの先頭に "Priority"という単語が含まれているファイルです。 (2番目のパラメータは常にディレクトリです)。grepと目的の結果を見つけるための組み合わせ

これまでのところ、私はこれがあります。

for i in `grep -ril ^Prioridad "$1"` 
do 
echo | ls -lh `grep -ril ^Prioridad "$i"` | cut -d" " -f5,9 
done 

戻り値:それは私がこれを実行すると、ファイルの端がしかしラインで7

を期待していなかったことを返す

if [ "$1" = -u ] 
    for i in `grep -ril ^Priority "$2"` 
    do 
    echo | ls -lh `grep -ril ^Priority "$i"` | cut -d" " -f5,9 
    done 
    fi 

を望ましい結果。

どのようにして最初の結果を得ることができますか?-uを第1のパラメータとディレクトリとして使用します。

+1

私は '検索' への参照を見ていないのですか?コードの残りの部分はむしろ厄介です。他のディストリビューションで実行すると、カットがあなたの後ろのものを見せてくれないかもしれません。 forループ内のgrepの目的は何ですか?すでに '$ i'にファイル名が格納されています。 – grail

+2

[なぜ* ls'を解析しないのですか?](http://unix.stackexchange.com/questions/128985/why-not-parse-ls) – Cyrus

+1

[];それで< - はかもしれません –

答えて

3

あなたはthenを逃した:

if [ "$1" = -u ]; then # <-- here 
    for i in `grep -ril ^Priority "$2"` 
    do 
     # Some more edits and trying to remove the echo/ls 
     # and battling against not found scenario 
     if grep -ril ^Priority "$i" ; then # if exists 
      echo "$(stat -c%s $i) $i" # stat size and File 
     fi 
    done 
fi 
+0

私の[コメント](https://stackoverflow.com/questions/47385974/combining-grep-and-find-for-desired-results#comment81725838_47385974)にご注意ください。 –

関連する問題