getDateFormat() {
year=`echo $1 | awk -F"-" '{print $2}'`
mm=`echo $1 | awk -F"-" '{print $3}'`
i=1
for x in January February march april may july jun august September October November December
do
if [ $mm -eq $ii ]; then
month="$x"
break
fi
ii=`expr $ii + 1`
done
mday=`echo $1 | awk -F"_" '{print $1}' | awk -F"-" '{print $4}'`
tmp_date="${mday}_${month}_$year
}
上記の機能が何であるかを知りたいです。
$ awk '$2 == "1" { print $0 }' cols.txt
一致する部分がある場合は、行全体を印刷します。しかし、このコマンドは何を返しますか?
echo $1 | awk -F"-" '{print $2}'
$ii
- これは何ですか?
i=1;
echo $ii
何も印刷しません。
ベストアンサー1
$1
最初です位置パラメータつまり、関数のパラメータです。 ■フィールド区切り記号をダッシュにawk -F-
設定し、2番目のフィールドを印刷します。したがって、から取得されます。awk
print $2
aa-bb-cc
bb
おそらく、関数は次のように呼び出されると予想されます。getDateFormat something-2017-06
奇妙に見えますが、2番目のダッシュで区切られたフィールドで年が選択されます。
$ii
変数は参照されますが、テスト前に設定されていないため、テストはif [ $mm -eq $ii ];
これを確認します[ 123 -eq ]
(123
たぶん変数からいくつかの数字を選択するかもしれません$1
)。演算子に-eq
他のオペランドがないため、エラーが発生します。