1. ホーム
  2. unix

[解決済み] UNIXソートでヘッダーラインを無視する方法はありますか?

2022-08-22 22:05:27

質問

UNIX (私の場合は Cygwin) のソートユーティリティを使用してソートしようとしている固定幅フィールドのファイルがあります。

問題は、ファイルの先頭に 2 行のヘッダーがあり、それがファイルの底にソートされることです (各ヘッダー行がコロンで始まるため)。

sort に "最初の 2 行を未ソートで渡す" またはコロン行を先頭にソートする順序を指定する方法はありますか - 残りの行は常に 6 桁の数字 (これは実際に私がソートしているキーです) で開始されます。

例です。

:0:12345
:1:6:2:3:8:4:2
010005TSTDOG_FOOD01
500123TSTMY_RADAR00
222334NOTALINEOUT01
477821USASHUTTLES21
325611LVEANOTHERS00

にソートする必要があります。

:0:12345
:1:6:2:3:8:4:2
010005TSTDOG_FOOD01
222334NOTALINEOUT01
325611LVEANOTHERS00
477821USASHUTTLES21
500123TSTMY_RADAR00

どのように解決するのですか?

(head -n 2 <file> && tail -n +3 <file> | sort) > newfile

括弧はサブシェルを作り、標準出力をラップして、あたかも一つのコマンドから来たかのようにパイプしたり、リダイレクトしたりできるようにします。