Как связать два файла в новом и отсортировать вывод в одной строке

Можно считать строку в использование массива read -a, и затем проверьте размер массива. Это должно быть значительно лучше, чем порождение подоболочки для разветвления 3 процессов каждая строка.

while read -ra line;
do
    if (( ${#line[@]} != 31 )); then
        echo "$file bad"
    fi
done < "$file"
6
16.10.2014, 16:34
2 ответа

Вы уже перенаправили вывод file1 и file2 в новый файл file3 .

с этой командой CAT File1 File2> File3 | Сортировка , Сортировка после трубы.

Это может быть проверено, как показано ниже.

cat file1
A
Z
B
cat file2
F
G
C

Теперь, когда я запускаю команду как CAT File1 File2> File3 | Сортировка Мы могли видеть, что содержимое File1 и файл2 записывается в file3 , но он не отсортирован.

Я верю, что вы пытаетесь достичь, могут быть довольно легко достигнуты как

cat file1 file2 | sort > file3

Однако он не показывает вывод в окне консоли.

Если вам нужен выход двух файлов после отсортированного для записи в новый файл, и в то же время отсортированный выход для доступов в консоли, вы можете сделать что-то вроде ниже.

cat file1 file2 | sort > file3; cat file3

Однако полезно использовать TEE в этом случае. TEE может быть эффективно использован, что и

cat file1 file2 | sort | tee file3

Вышеуказанная команда в основном объединяет 2 файла и сортирует их и отображает выходные данные в консоли, и в то же время записывает вывод трубы в новый файл, указанный с использованием Команда Tee .

Как пользователь Casey отмечает, если у вас ZSH Shell доступна в вашей системе, вы также можете использовать команду ниже.

sort <file1 <file2 | tee file3
8
27.01.2020, 20:23

POSIX определяет назначение утилиты sort так:

Сортируйте строки всех именованных файлов вместе и запишите результат в указанный вывод.

Вы можете отсортировать два файла в единый выходной файл, например:

sort $opts file1 file2 >output_file

Если вы хотите, чтобы результат был сохранен в выходном файле stdout и , то используйте tee:

sort $opts file[12] | tee output_file
4
27.01.2020, 20:23

Теги

Похожие вопросы