1

tail -1 の出力を比較して、空の文字列かどうかを確認したいと思います。たとえば、find でファイルを検索していて、結果を "" (空の文字列) と比較したい場合、どうすればよいでしょうか? 私は持っている:

find . -name "*.pdf" | tail -1 | xargs -L1 bash -c 'if [$1 == ""] then echo "Empty"; else 
< echo $1; fi'

基本的に、空でない場合はファイル名を出力し、'find' で見つかった pdf ファイルがない場合は "Empty" を出力します。

単一のコマンド内で if-else ステートメントを使用してさまざまなバリエーションを試しましたが、何も機能しないようです。

4

5 に答える 5

2

オプションを使用xargsできます--no-run-if-empty

--no-run-if-empty

-r

標準入力に非ブランクが含まれていない場合は、コマンドを実行しないでください。通常、コマンドは入力がなくても 1 回実行されます。このオプションは GNU 拡張です。

私の使用例:

find /iDontExist | xargs du -sc
# produce the command `du -sc` on the current directory
# that wasn't the initial aim

これを回避する方法:

find /iDontExist | xargs --no-run-if-empty du -sc

h番目

于 2018-10-11T12:50:35.430 に答える
0

スクリプトを作成できます:

#!/bin/bash
output=$(find . -name *.pdf)
if [ -z $output ]; then
    echo "Empty"
fi
于 2013-09-20T05:04:07.253 に答える