Sắp xếp các số theo thứ tự từ trái sang phải theo thứ tự tăng dần


0

Làm thế nào để sắp xếp theo thứ tự tăng dần từ trái sang phải trong vihoặc với sortlệnh? Mẫu trước khi sắp xếp:

2  3
3  6
5  1
4  2
5  8

Tôi muốn nó theo cách này:

2  3
3  6
1  5
2  4
5  8

trong khi đọc p; do echo $ p | tr '' '\ n' | sort -k1 | paste -s -d '' -; xong <input> output
krowe

@krowe Đi trước
slhck

Câu trả lời:


0

Đây có thể là một dòng với lệnh sau:

while read p;do echo $p|tr ' ' '\n'|sort -k1|paste -s -d' ' -;done<input>output

Thay thế đầu vào và đầu ra bằng các tệp IO thực tế của bạn.

Tôi đã viết một kịch bản nhỏ có thể được sử dụng để kiểm tra điều này:

#!/bin/bash
# This script is just for testing purposes. 
# Call this like:

#   sort_numbers numbers.txt numbers_correct.txt

# Where numbers.txt is the file to sort and
# numbers_correct.txt is a file where they are 
# sorted correct.

while read p; do 
  echo $p|tr ' ' '\n'|sort -k1|paste -s -d' ' -
done<$1>output.$1

# This just compares the output with the correct output
file1=$2
file2=output.$1
echo -n $file1 and $file2 are' ' && cmp --silent $file1 $file2 && echo the same || echo different
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.