Версии awk
и sed
, которые steeldriver предоставили, прекрасно работают, и их очень легко реализовать в моей текущей среде.
Я немного улучшил их, чтобы в коде также можно было использовать буквы, пробелы и точки между скобками:
awk 'BEGIN{OFS=FS=","} match($5,/^\([a-zA-Z0-9.]+\)/) {$3 = substr($5,RSTART+1,RLENGTH-2)} 1' file.csv
sed -E 's/^([^,]*),([^,]*),([^,]*),([^,]*),\(([a-zA-Z0-9.]+)\)/\1,\2,\5,\4,(\5)/' file.csv
Другие версии также работают, но не так хорошо подходят для моего рабочего процесса.
Спасибо!
vidcontrol(1)
является частью базовой операционной системы FreeBSD и, таким образом, не является частью какого-либо пакета. Похоже, что что-то или кто-то стер ваш файл, чтобы сделать его недействительным -.
Вы можете получить двоичный файл vidcontrol
из файла FreeBSD-13.0-RELEASE-*.iso
, который вы установили из (, возможно, на USB-накопителе или оптическом носителе ). Если у вас больше нет удобного доступа к установочному носителю, который вы использовали, достаточно загрузить bootonly
ISO:
$ ftp anonymous@ftp3.freebsd.org
Trying 204.15.11.115:21...
Connected to ftp.geo.freebsd.org.
220 This is ftp0.tuk.freebsd.org - hosted at MetaPeer http://www.metapeer.com
331 Please specify the password.
Password:
230-
230-This is ftp0.tuk.FreeBSD.org, graciously hosted by ZI IN A LOCATION TBD.
230-
230-FreeBSD files can be found in the /pub/FreeBSD directory.
230-
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /pub/FreeBSD/releases/ISO-IMAGES/13.0/
250 Directory successfully changed.
ftp> get FreeBSD-13.0-RELEASE-amd64-bootonly.iso
local: FreeBSD-13.0-RELEASE-amd64-bootonly.iso remote: FreeBSD-13.0-RELEASE-amd64-bootonly.iso
229 Entering Extended Passive Mode (|||60919|)
150 Opening BINARY mode data connection for FreeBSD-13.0-RELEASE-amd64-bootonly.iso (363548672 bytes).
100% |***************************************************************************| 346 MiB 84.58 MiB/s 00:00 ETA
226 Transfer complete.
363548672 bytes received in 00:04 (83.59 MiB/s)
ftp> quit
221 Goodbye.
Затем используйте tar(1)
для определения и извлечения нужного файла:
$ tar tvf FreeBSD-13.0-RELEASE-amd64-bootonly.iso | grep vidcontrol
-r-xr-xr-x 1 0 0 28456 Apr 9 00:26 usr/sbin/vidcontrol
-r--r--r-- 1 0 0 6154 Apr 9 00:26 usr/share/man/man1/vidcontrol.1.gz
Я предполагаю, что ваш каталог /tmp
не содержит файла или каталога /tmp/usr
. Если да, временно отложите его или rm -rf
.
$ tar xpf FreeBSD-13.0-RELEASE-amd64-bootonly.iso -C /tmp usr/sbin/vidcontrol
Наконец, проверьте /tmp/usr/sbin/vidcontrol
и попробуйте запустить его. Если он выглядит хорошо, переместите его в/usr/sbin
:
$ sudo chown root:wheel /tmp/usr/sbin/vidcontrol
$ sudo mv /tmp/usr/sbin/vidcontrol /usr/sbin/
Есть некоторые дополнительные шаги, которые можно предпринять из соображений предосторожности, например, проверить sha256
файла ISO перед извлечением из него, но суть процесса в этом.