位置に応じて数字内の数を掛ける

位置に応じて数字内の数を掛ける

次の数値リストがあります。

0987656787689
2345453326780
3453212332345
1324532449876
1234532444568
3245321343456
1324354532376
1234532153457

6番目の数字と7番目の数字を掛けた結果に基づいて数字をソートしたいので、結果は次のようになります。

3245321343456
3453212332345
1234532153457
1234532444568
1324532449876
2345453326780
1324354532376
0987656787689

ベストアンサー1

使用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

これにより、乗算結果を元の数字と一緒にタブ区切りの2つの別々の列に貼り付け、数字で並べ替えて2番目の列(元の数字)を抽出します。

おすすめ記事