入力:
$ cat a.txt
1FOO2FOO3
4FOO5FOO5
2FOO1FOO9
$
出力:
$ cat a.txt | sort SOMEMAGIC
2FOO1FOO9
1FOO2FOO3
4FOO5FOO5
$
質問 :数文字の長い区切り文字がある場合、どのように並べ替えることができますか? (「FOO」)?
例では、a.txt
2番目の列でソートされます。
質問は一般的に、a.txt
の数字です 何でもかまいません。
承認された回答:
たとえば、 sed
文字列を1文字の区切り文字に置き換え、列で並べ替えてから、区切り文字を再度置き換えます:
sed -e s/FOO/X/g a.txt | sort -k 2,2 -t X | sed -e s/X/FOO/g
これは、入力に表示されないことがわかっている文字があることを前提としています。制御文字が一般的な候補ですが、入力形式の知識に基づいて選択する必要があります。