約800行のファイルがあります。すべての行には1 *文字が含まれています。
ファイルの行を繰り返す必要があるので、次のような単純なforループを使用しました。
for i in $(cat file_path); do echo $i; done
残念ながら、それは動作しませんでした。
別のファイルで試してみると、ループは正常に機能しますが、ファイルの行に*文字が含まれていません。
この問題をどのように解決できますか?
ベストアンサー1
コードにはいくつかの問題があります。
- 去る引用符なしで変数とコマンドを置き換える
- エコを使うすべての変数
while
ループを使用して問題を解決できます。
while IFS= read -r line <&3; do
{ printf '%s\n' "$line"; } 3<&-
done 3< file
[ -z "$line" ] || printf %s "$line"
知っておくべきことwhileループを使用してテキストファイルを処理することは悪い習慣と見なされます。POSIXシェルから。