私はシェルスクリプトの初心者です。flat(.txt)ファイルから行数を取得してint変数に割り当てる必要があります。
これを試しても機能しない
FNAME="pn_data_"$month$day$year".txt"
declare -i recordcount=0
for f in $FNAME
do
recordcount+=`wc $f |'{print $1}'`
done
周りの提案をいただければ幸いです。
の秘訣wcは、コマンドラインでファイル名を指定すると、それが出力に出力されることです。これを回避するには、標準入力をフィードします。シンボルのRHSは奇妙です—アクションの前で|逃したかもしれませんか?awkしかし、それはやり過ぎです:あなたは単に書くことができます:
declare -i recordcount
recordcount=$(wc -l < $FNAME)
(そして、私は通常、declare回線を気にしません。)
ファイルが1つだけで、1つのファイルからのレコード数が必要であると想定していることに注意してください。複数のファイルを処理して集計数を取得する必要がある場合は、シェルで各ファイルを個別に処理してからの値を計算するwcか、すべてのファイルを実行wcして合計行数を出力する必要があります。最後に(これは後処理するsedかawk、出力の最後の行から数値だけを取得することができます)。
FNAME="pn_data_"$month$day$year".txt"
for f in $FNAME
do
recordcount=$(expr $recordcount + $(wc -l < $f))
done