ファイルから一連の行を読み、次に各行を削除する方法は?
明らかに、次のように読むことができます。
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