各行に*を含むファイルの行を繰り返す方法

各行に*を含むファイルの行を繰り返す方法

約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シェルから。

おすすめ記事