4

最初の列の文字数に基づいてファイルを並べ替える必要があります。

どうすればいいのかわかりません。Linux を使用しているため、sed/awk/sort はすべて利用可能です。

.abs は bla bla 12 です
.abc は bla se 23 bla です
.fe は bla bla bla です
.jpg は pic 拡張子です
.se はスウェーデンのドメイン用です

私が望むのは、各行の最初の列の長さに基づいて、これらの行を並べ替えることです。4 文字で始まる行もあれば、3 文字または 2 文字で始まる行もあります。結果は次のようになります。

.fe は bla bla bla です
.se はスウェーデンのドメイン用です
.abs は bla bla 12 です
.abc は bla se 23 bla です
.jpg は pic 拡張子です

これは可能ですか?

4

3 に答える 3

10

最初の単語の長さで各行を増やしてから、並べ替えます。

awk '{ print length($1) " " $0; }' $FILE | sort -n

cut -d ' ' -f 2-必要に応じて、後でヘルパー フィールドを切り取ります。

于 2013-01-31T12:42:41.753 に答える
2

または、このように後でsedを使用することもできます

awk '{print length($1)" "$0}' temp.txt | sort -k 1,2| sed -re 's/^[0-9]+ //'

于 2013-02-01T01:40:32.987 に答える