Изменить содержимое нескольких файлов

Создайте дерево каталогов в /home/<user>/с той же структурой, что и /usr/share/X11/xkb/. Другими словами:

$ tree -L 1
.
├── compat
├── geometry
├── keycodes
├── rules
├── symbols
└── types

Так что поместите соответствующие файлы в compat, symbolsи т. д. Вам, очевидно, не нужно создавать пустые каталоги, просто каталоги для нужных вам файлов.

Затем рассмотрите возможность переименования файла символов во что-то отличное от us. Может быть способ устранить неоднозначность вашего собственного файла символов usиз файла под /usr/share/X11/xkb/, но проще просто выбрать новое имя, которое не появляется в /usr/share/X11/xkb/symbols/. mineподойдет.

Допустим, вы поместили свой пользовательский каталог Xkb в /home/<user>/my-xkbи что ваш файл пользовательских символов называется mine.

Если вы используете setxkbmap(1)для установки своего макета, вам просто нужно изменить его, чтобы распечатать вывод и передать его на xkbcomp(1). Итак, если это ваш setxkbmapпризыв:

setxkbmap mine

Вам нужно изменить его на это:

setxkbmap mine -print |
    xkbcomp -I"/home/<user>/my-xkb" - "$DISPLAY"
0
18.06.2020, 09:30
1 ответ

Вы можете попробовать что-то вроде

$ xargs -a list.txt -I myfilename find. -name myfilename -exec sed 1,7d '{}' \;
  • xargs считывает имена файлов в list.txt и заменяет шаблон myfilenameименем файла, прочитанным в команде поиска
  • find найдет ваш файл и передаст его в sed, который удалит первые 7 строк (или очистит файл, если в нем меньше 7 строк)
1
18.03.2021, 23:26

Теги

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