В настоящее время я делаю следующую команду, чтобы просмотреть все файлы в папке на наличие строки, а затем tee эту строку в файл:

ls -r [folder] | sls "dummy text" | tee dummy.file

Эти строки текста длинные и могут выглядеть

 123445678461454516132113213213214dummy textsadawgwgabagga

Когда я использую команду в powershell, если экран недостаточно велик, он отображается как, например,

123445678461454516132113213213214dummy 
textsadawgwgabagga

Что хорошо в PowerShell, но я не понимаю, что он записывает его в файл вот так (я понимаю, почему, я думаю, так как он, вероятно, передает каждую строку по отдельности, основываясь на том, как она ее разбивает).

Есть ли способ получить это, чтобы tee в файл все в одну строку?

РЕДАКТИРОВАТЬ: делать следующие работы, но я бы предпочел использовать тройник, если это возможно, чтобы увидеть его в консоли

ls -r | sls | out-file -width 1000 dummy.file

1 ответ1

1

Ваша проблема в том, как выводится объект MatchInfo возвращаемый select-string . Если вы просто извлекаете свойство Line из объекта matchinfo, (в этом случае вы выводите строки, а не объекты MatchInfo), вы должны получить желаемое поведение:

ls -r [folder] | sls "dummy text" | select -expand Line | tee dummy.file

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