Как редактировать текстовый файл без текстового редактора?

dev=$(lsblk | awk '$1 ~ /^sd/ {print $1; exit}')
if [ -n "$dev" ]; then
  dev=/dev/$dev
  parted "$dev" mklabel gpt mkpart primary "1 -1" -s
fi

Теперь, если вам нужен первый sd?диск, это может быть проще сделать:

shopt -s nullglob; set -- /dev/sd[a-z]
if (($# > 0 )); then
  parted "$1" mklabel gpt mkpart primary "1 -1" -s
fi

Или сделать это для каждого диска:

shopt -s nullglob
for dev in /dev/sd[a-z]; do
  (set -x; parted "$dev" mklabel gpt mkpart primary "1 -1" -s)
done
1
27.08.2020, 19:02
3 ответа

В таком случае я бы попробовал перенести файлы и отредактировать их на другом компьютере, а затем передать обратно. Если у вас ssh, у вас должно бытьscp(надеюсь ), так что вы сможете вставлять и выгружать файлы. Если нет, вы также можете найти ftpдля передачи файлов.

Если нет, то я думаю, что вам лучше всего попробовать использовать cat, grep, sed, echoи перенаправление ввода-вывода (, особенно с добавлением>>). И много временных файлов.

6
18.03.2021, 23:11

Если zshустановлен, вы можете редактировать файлы с помощью редактора строк zsh с помощью:

zmodload zsh/mapfile
vared 'mapfile[myfile.txt]'

Или даже:

autoload zed
zed myfile.txt
2
18.03.2021, 23:11

Как упоминалось Faxeyo, самый простой способ редактирования файла — удаленное редактирование. Vim на вашем локальном компьютере часто может редактировать файлы через SFTP, а если вы используете какой-либо другой редактор, он также может работать удаленно.

Однако, возможно, вы редактируете файл, который может быть изменен только другим пользователем, и это не сработает. Если удаленная система является системой Linux, на ней может быть busybox, а некоторые версии busybox включают viи ed. viне будет полнофункциональным, но его будет достаточно для редактирования файлов. Вы можете вызвать их с помощью busybox vi FILEили busybox ed file. Вы также можете scpиспользовать статически связанный busyboxдвоичный файл.

Ваша система может иметь несколько более функциональный edдвоичный файл в другом месте. Это строковый редактор, очень похожий на команды двоеточияviexкоманды ). Хотя он необязателен во многих дистрибутивах Linux, он часто используется для некоторых более эзотерических функций patch, поэтому он может присутствовать. edи режим exв viтакже имеют приятную особенность работы без TTY.

Некоторые очень старые системы Debian имеют ae, которые могут работать в режиме vi. Любая другая операционная система с открытым исходным кодом, отличная от -Linux, о которой я знаю, имеет одну из vi, exили edв базовой системе и не разрешает их удаление через диспетчер пакетов.

Если бы текстовых редакторов действительно не было, я бы записывал фрагменты данных с помощью catи heredocs во временные файлы и редактировал ошибки с помощью sed. Я бы также отправил приятное электронное письмо системному администратору (из другой системы, конечно же ), с просьбой установить один или два редактора.

2
18.03.2021, 23:11

Теги

Похожие вопросы