Любой надежный метод сортировки файловых столбцов? - PullRequest
3 голосов
/ 03 апреля 2012

У меня есть скрипт Perl, использующий вызов system для сортировки файла tsv:

system("sort -k8 -r -n -t \$'\t' in.txt > out.txt");

Отлично работает в CentOS и SUSE Linux. Но в Ubuntu выдает ошибку:

sort: multi-character tab `$\t'

Кажется, проблема с разными ОС интерпретирует цитату по-разному. У вас есть простой, но более надежный способ сортировки файлов tsv в Perl?

1 Ответ

3 голосов
/ 03 апреля 2012

Обычно вы используете вызов массива system, чтобы избежать оболочки, но у вас есть перенаправление ввода / вывода в команде, с которой трудно справиться.OTOH, sort позволяет указать выходной файл с помощью -o, и указанный файл может быть одним из входных данных (хотя его здесь не будет):

my @cmd = ( "sort", "-k8", "-rn", "-t", "\t", "-o", "out.txt", "in.txt" );

system(@cmd);

Оболочка невызывается;вкладка не повреждена.Я объединил опции -r и -n в одну;Вы можете оставить их отдельно, если хотите, или (в крайнем случае) добавить их после опции -k8.

...