ファイルの最後の行を移動する方法は? [コピー]

ファイルの最後の行を移動する方法は? [コピー]

ファイルの例

line 1
line 2
line 3
line 4

line 4その後になければなりませんline 1

line 1
line 4
line 2
line 3

重要:4行以上になることがあります。スクリプトは何とか最後の行を読む必要があることを理解する必要があります。いいえ4号線。

ベストアンサー1

もう一つの遅くて長いバージョンです。

#!/bin/sh

if [ ! -f "$1" ]
then
    printf "No input file\n"
    exit
fi

FIRST=`head -n 1 "${1}"`
LAST=`tail -n 1 "${1}"`
MID=`sed -n '$d; 2,$p' "${1}"`
printf "${FIRST}\n${LAST}\n${MID}\n"

exit

headを使用するたびにファイルにアクセスするため、速度が遅くtailなりますsed。大容量ファイル(または複数のファイル)では、この現象が非常に目立つように見えることがあります。

おすすめ記事