Пара вариантов awk
(при условии, что ваш файл находится внутри переменной $file
)
Здесь вы можете выполнить цикл для всех coloumn, печать с разделителем полей (OFS) и печать терминатора записи (ORS) в конце строки.
awk -F',' -v OFS=, \
'{for(i=1;i
Здесь с использованием regex и gensub()
функции
gawk -F',+' -v OFS=, '{$0=gensub(/\s*\S+/,"",7) OFS $7}1' "$file"
убивая 7-е поле и печатая его в конце строки.
$0
- вся запись $n
- n-я запись NF
- количество полей текущей строки OFS
- разделитель выходных файлов NF
- разделитель выходных файлов. разделитель выходных файловORS
терминатор выходной записи1
- это трюк, который нужно сказать awk true
и вывести значение по умолчанию ($0
). Update...
Чуть не забыл, можно сдвинуть все столбцы, следующие за 7-м.
awk -F',' -v OFS=, '{tmp=$7; for(i=7;i<=NF;i++) $i=$(i+1); $NF=tmp}1 ' "$file"
Поскольку SSHFS основан на FUSE, проще использовать средство автомонтирования без полномочий root. Используйте предохранитель , это почти то, для чего он был разработан. Одноразовая настройка:
mkdir ~/.afuse
ln -s .afuse/raspberrypi/server_folder ~/raspberrypi
Для запуска автомонтирования:
afuse -o mount_template="sshfs %r:/ %m" -o unmount_template="fusermount -u -z %m" ~/.afuse
Убедитесь, что переменная SSH_AUTH_SOCK
установлена при запуске предохранителя
, т.е. он должен запускаться после ssh-агент
. Запустите ssh-add
, чтобы загрузить ключ в агент SSH, и тогда вы сможете получить доступ к каталогам SSHFS.
Чтобы расширить правильный ответ Жиля и рассмотреть некоторые дополнительные мысли, высказанные в комментариях к его ответу, относительно «Интеграция afuse в (профиль )запуск (сценарии ):
Вы можете включить по -требованию sshfs монтирование, добавив вызов скрипта в ваш, например.~/.profile
или создать единицу обслуживания systemd уровня пользователя .
Я одобряю ответ systemd:~/.config/systemd/user/afuse.service
[Unit]
Description="SSHFS via Afuse automounter"
AssertPathExists=%h/scp/
AssertFileIsExecutable=/usr/bin/afuse
AssertFileIsExecutable=/usr/bin/sshfs
[Service]
Type=forking
WorkingDirectory=%h/scp
ExecStart=/usr/bin/afuse \
-o mount_template="sshfs -o ServerAliveInterval=10 -o reconnect %%r:/ %%m" \
-o unmount_template="fusermount -u -z %%m".
Restart=always
PrivateTmp=true
#NoNewPrivileges=true
#Environment=
[Install]
WantedBy=default.target