Sort
根據數字的位置將數字內的數字相乘
我有這樣的數字列表:
0987656787689 2345453326780 3453212332345 1324532449876 1234532444568 3245321343456 1324354532376 1234532153457
我想根據第六位和第七位的數字相乘的結果對數字進行排序,所以結果是這樣的:
3245321343456 3453212332345 1234532153457 1234532444568 1324532449876 2345453326780 1324354532376 0987656787689
使用
awk
:$ awk '{ print substr($0,6,1)*substr($0,7,1) }' <file 30 15 2 6 6 2 20 6
根據上述結果對原始數字進行排序(這是評論中的後續問題):
$ awk '{ print substr($0,6,1)*substr($0,7,1) }' <file | paste - file | sort -n | cut -f 2 3245321343456 3453212332345 1234532153457 1234532444568 1324532449876 2345453326780 1324354532376 0987656787689
這會將乘法的結果與原始數字一起粘貼為兩個單獨的製表符分隔的列,然後按數字對其進行排序並提取第二列(原始數字)。