私はこのbashスクリプトを使ってテキストファイルを作成しています。もっと効率的にするためには少しシンプルで短くしたいと思います。 ? displayColumn()
でファイルを解析するためのBashスクリプトの圧縮
$vi
function displayHelp
{
echo "Use '-f' to set the file to be used "
echo "Use '-s' to sort the data bya column"
echo "Use '-m' to output the rows which match this expression"
}
function displayColumn
{
columnnumber="$2"
awk '{print $'$columnnumber'}' $1
}
function displayParameter
{
parameter="$3"
columnnumber="$2"
awk -v s=$3 -v c=$2 '$c ~ s { print $0 }' $1
}
while getopts f:s:m:h opt
do
case "$opt" in
h) displayHelp;;
f) filepath="$OPTARG";;
s) column="$OPTARG"
displayColumn $filepath $column
;;
m) searchParam="$OPTARG"
displayParameter $filepath $column $searchParam
;;
esac
done
これはかなりよく見えます - なぜ短くなったのですか? – zigdon
これは既にかなりシンプルに見えます。私はそれらの機能を別々に書くだろう。ちょっと、あなたは関数を完全に廃止して、単に 'case'ステートメントから物事を実行することができます。それは短くなるが、読むのは難しい。空白はパフォーマンスに影響しないことに注意してください。読むのが簡単なら、より保守的です。 – ghoti
私はちょうどスクリプトがいかに効率的であるかに興味があります。 –