2016-12-12 3 views
0

Мне нужно перетасовать строки в текстовом файле и сохранить результат в новый текстовый файл. Это команда, которую я использовал. Однако это печатает перетасованные строки в консоли, а не в outfile.Перенаправить вывод в файл при работе с конвейером cat и perl

cat infile | perl -MList::Util=shuffle -e 'srand 123; print shuffle(<>);' "[email protected]"; > outfile 

ответ

2

незащищенная точка с запятой является виновником

Это просто останавливает текущую команду и запускает другую пустую (создает пустой файл).

Обратите внимание, что дополнительные "[email protected]" аргументов perl бесполезны здесь, а также используется cat. Таким образом, чтобы все это вы могли написать:

perl -MList::Util=shuffle -e 'srand 123; print shuffle(<>);' infile > outfile 
1

Снятие последнего; заставляет его работать.

cat infile | perl -MList::Util=shuffle -e 'srand 123; print shuffle(<>);' "[email protected]" > outfile 

 Смежные вопросы

  • Нет связанных вопросов^_^