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