ファイルから行を読み取って削除する

ファイルから行を読み取って削除する

ファイルから一連の行を読み、次に各行を削除する方法は?

明らかに、次のように読むことができます。

while read -r line; do
echo $line
done < myfile.txt

しかし、これを行うと:

while read -r line; do
echo $line
sed '1d' myfile.txt
done < myfile.txt

私は最初の行だけを取得します

私は1行を読んで、その行に何かをした後、ファイルの次の行に移動する前に削除するエレガントな方法を探しています。

ベストアンサー1

sedむしろ一度だけ呼び出してから、各行の繰り返しで呼び出すことをお勧めします。ソースファイルを変更するには追加できます。-私- 所定の位置に)オプションsed

unset n
while read -r line; do
  echo $line
  : $((n++))
done < myfile.txt
sed "1,$n d" myfile.txt

おすすめ記事