Попробуйте это,
awk '$NF~/CSV$/ {print $NF}' file
Существуют различные способы вызова оболочки. Когда вы входите в систему либо с помощью эмулятора терминала (, например, при запуске WSL ), либо через SSH, такая оболочка называется оболочкой входа в систему. Любая оболочка, которую вы запускаете и в которую вводите команды, независимо от того, является ли она также оболочкой входа в систему, называется интерактивной оболочкой. Не интерактивная оболочка -— это любая оболочка, которая используется для написания сценариев или иным образом, когда вы не вводите в нее команды.
Когда вы запускаете WSL, это интерактивная оболочка входа, но когда вы запускаете exec bash
или exec $SHELL
, это не -интерактивная оболочка входа. Я подозреваю, что вы увидите ту же проблему, если вы запустите exec $SHELL -l
сразу после запуска WSL, который запускает оболочку входа вместо интерактивной оболочки без входа -.
В bash ~/.bashrc
не читается для оболочек входа, которые не поступают из SSH; Вместо этого читается ~/.bash_profile
. Поскольку вы не хотите повторять свою конфигурацию, обычно ~/.bash_profile
читается как ~/.bashrc
, добавляя в нее что-то вроде этого:
# include.bashrc if it exists
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
Это сделает ваш ~/.bashrc
прочитанным при первом запуске WSL, и ваш код virtualenv должен работать как обычно.
У меня была другая проблема, которая также требовала перезапуска WSL2, чтобы все заработало.
Решение заключалось в отключении быстрого запуска Windows.
По-видимому, иногда при быстром запуске инициализировался WSL (default)
вместоWSL2
Вы можете отключить его в «Параметры электропитания» > «Выберите, что делают кнопки питания» > «Настройки выключения» > «Включить при быстром запуске"