Как расположить в порядке возрастания слева направо в vi или с помощью команды sort ? Образец до аранжировки:

2  3
3  6
5  1
4  2
5  8

Я хочу это таким образом:

2  3
3  6
1  5
2  4
5  8

1 ответ1

0

Это может быть одна строка с помощью следующей команды:

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

Замените ввод и вывод вашими фактическими файлами ввода-вывода.

Я написал небольшой скрипт, который также можно использовать для проверки этого:

#!/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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .