私はこのようなファイルを持っています
12;6
2;4
9;4
...
この場合、フィールド (列) 区切り文字は「;」です。各行のフィールドを並べ替えたい。許容可能な出力は次のようになります。
6;12
2;4
4;9
受け入れ可能な解決策は、フィールド区切り文字が「;」であることを前提とすることができます。値は整数です。理想的なソリューションは、より柔軟で、さまざまな区切り文字を使用でき、英数字の並べ替えが可能です。
これはすべてコマンドラインで行う必要があります。
私はこのようなファイルを持っています
12;6
2;4
9;4
...
この場合、フィールド (列) 区切り文字は「;」です。各行のフィールドを並べ替えたい。許容可能な出力は次のようになります。
6;12
2;4
4;9
受け入れ可能な解決策は、フィールド区切り文字が「;」であることを前提とすることができます。値は整数です。理想的なソリューションは、より柔軟で、さまざまな区切り文字を使用でき、英数字の並べ替えが可能です。
これはすべてコマンドラインで行う必要があります。
perl -wne '$,=";"; chop;
print sort { $a <=> $b } split ";";
print "\n"' input
perl が古くない場合:
perl -wnE '$,=";"; chop;
say sort { $a <=> $b } split ";"' input
次のこともできます。
perl -F\; -wanE 'chop $F[-1]; $,=";"; say sort { $a <=> $b } @F' input
awk 'BEGIN{FS=OFS=";"}{if($1>$2)print $2,$1;else print $1,$2;}' file
テスト
kent$ cat t.txt
12;6
2;4
9;4
ccc;aaa
bab;baa
kent$ awk 'BEGIN{FS=OFS=";"}{if($1>$2)print $2,$1;else print $1,$2;}' t.txt
6;12
2;4
4;9
aaa;ccc
baa;bab