Для быстрого и простого редактирования файла на местеsed
-функция i намного проще, чем создание чего-то подобного с использованием awk
. Я согласен с тем, что платформы, использующие gawk
в версии 1.4.0 или более поздней, имеют функцию «на месте», чтобы покрыть это.
sed -i 's/foo/bar/' filename
С неохотой выучил sed
сам из-за того, что все существующие скрипты его используют. При наличии выбора при написании нового скрипта обычно побеждает awk
, код становится намного более читабельным и удобным в сопровождении.
Вы можете использовать пакет Snap и установить Notepad++ в Linux без установки Wine . Также есть обзор пяти альтернатив , не упомянутых выше.
Однако для всех требуется графический интерфейс, который WSL не включает. Я бы посоветовал вам просмотреть параметры в этой статье , прежде чем выбирать графический интерфейс и добавлять графические приложения.
Вы можете редактировать файлы на стороне Windows(C:\xxx
)и получать к ним доступ из Debian (/mnt/c/xxx
), это не проблема. Вы даже можете запустить Notepad++ из bash, который открывается в Windows, как обычно, но поскольку вы не можете редактировать какие-либо файлы Linux, это не имеет никакого смысла.
Таким образом, чтобы редактировать файлы вашей файловой системы linux, вам придется сначала скопировать их в общий каталог Windows /mnt/c/whatever
, отредактировать их там, а затем скопировать обратно.
Другой вариант — установить Samba на Linux и смонтировать рабочие -каталоги в Windows. Обратный способ доступа к общему ресурсу Windows с помощью smbclient также возможен, но не интересно использовать командную строку linux, это уже пробовали. Вы быстрее копируете свои файлы.
Или вы используете emacs, vim,...
@Колин
Быстрый ответ на ваш первоначальный вопрос:
$ /mnt/c/Program\ Files/Notepad++/Notepad++.exe "useful.txt"
Так и должно быть
Однако, несмотря на возможность вызова бинарных файлов win из wsl.exe , ваш подход кажется очень -сложным.
Лично я использую nano/cat при работе в WSL CLI.
Но нет ничего лучше, чем Sublime Text с комбо Terminus Package . Запуск bash/zsh на WSL внутри вкладки невероятно удобен:
упрощает копирование/вставку
составление скриптов sh как босс (просто не забудьте переключить файл.sh в режим Unix Line Endings)
Я использую notepad++ с моим WSL (ubuntu )в качестве редактора по умолчанию как для Windows, так и для Linux, и я настроил его так, чтобы он запускался из обоих контекстов для файлов в любой файловой системе.
Мои настройки:
Запуск Notepad++
Линукс
Настройте псевдоним следующим образом:
alias npp="/mnt/c/Program Files/Notepad++/Notepad++.exe"
Теперь я могу запустить какnpp [filename]
Окна
Добавьте файл notepad.exe в PATH.
C:\Program Files (x86)\Notepad++
Теперь вы можете запустить notepad++ из любой папки.
Редактирование файлов Windows
Из окон
С установленным путем; можно сделать обычные окна:
notepad++ foo.txt
Из Linux
К ним можно получить доступ через /mnt
точки монтирования, так что вы должны сделать:
npp /mnt/c/Temp/foo.txt
Файлы Linux
Из Windows
К ним можно получить доступ через так называемую -файловую систему P9, предоставляемую WSL, так что вы должны сделать:
Notepad++.exe \\wsl$\Ubuntu-18.04\home\user\foo.txt
(не забудьте переименовать для вашего дистрибутива WSL)
Из Linux
С установленным псевдонимом; ты можешь сделать
$ npp foo.txt