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