Ksh Unix変数に保存されているファイルを読み込みます。

Ksh Unix変数に保存されているファイルを読み込みます。

変数に保存されているファイルの読み込みに問題があります。簡単なはずなのになんだか何か抜けて何を把握できませんか?

count=0 
mip="$(<fila.txt)"
while read -r line
do
  count=`expr $count + 1`
  echo "line $count "   
done < $mip

このように行の数を数える非常に基本的で簡単なスクリプトですが、変数を使用すると完了< $mipファイル名の代わりに<fila.txtを完了してください。。スクリプトはファイルの内容のみを出力します。猫ピラー.txt行を計算する代わりに。

line 1
line 2
line 3
line 4
line 5
line 6

どんなアイデアがありますか? ?

答え1

done <$mipまだこれが$mipファイル名であると仮定します。そうではありません。

あなたが望むものは次のとおりです。

printf '%s\n' "$mip" |
while IFS= read -r line; do
   printf 'line %d\n' "$(( ++count ))"
done

より直接的な解決策は

while IFS= read -r line; do
   printf 'line %d\n' "$(( ++count ))"
done <filea.txt

でも

cat -n filea.txt | sed 's/^ *\([0-9]*\).*$/line \1/'

cat最後のコマンドは、ファイルの行を列挙してsed実際のファイルの内容を削除するために使用されます。

または を使用するとawk簡単です。

awk '{ printf("line %d\n", NR) }' filea.txt

または、最初にファイルの行数を数える場合:

count=$( sed -n '$=' filea.txt )    # or:  count=$( wc -l <filea.txt )
printf 'line %d\n' {1..$count}

関連情報