linux изменить некоторую строку в файле и зашифровать ее одновременно - PullRequest
0 голосов
/ 30 апреля 2020

хотел быстро на 100 с файлов шифровать значения с помощью base64, я знаю о sed, но есть ли способ быстро выполнить какую-либо команду для найденной строки или мне нужно сделать это вручную cut -d: -f2 | cut -c 4-, а затем зашифровать и записать обратно все данные снова

data:
- name: stringa
  value: valuea
- name: stringb
  value: valueb

изменить их на

data:
- name: stringa
  value: dmFsdWVh
- name: stringb
  value: dmFsdWVi

1 Ответ

1 голос
/ 30 апреля 2020

Хаки, но это работает

cat file | grep value | cut -d ":" -f2 | while read values; do echo -n "${values}:" && echo -n $values | base64;done > values && cat ./values | while read values; do sed -i "s/$(echo $values | cut -d ":" -f1)/$(echo $values | cut -d ":" -f2)/g" ./file;done
 && rm -rf values

Допустимое содержимое файла:

data:
- name: stringa
  value: valuea
- name: stringb
  value: valueb

Вывод

ebvjr@Maintenance:~/work/stackoverflow$ cat file
data:
- name: stringa
  value: valuea
- name: stringb
  value: valueb
ebvjr@Maintenance:~/work/stackoverflow$ cat file | grep value | cut -d ":" -f2 | while read values; do echo -n "${values}:" && echo -n $values | base64;done > values && cat ./values | while read values; do sed -i "s/$(echo $values | cut -d ":" -f1)/$(echo $values | cut -d ":" -f2)/g" ./file;done && rm -rf values
ebvjr@Maintenance:~/work/stackoverflow$ cat file
data:
- name: stringa
  value: dmFsdWVh
- name: stringb
  value: dmFsdWVi
ebvjr@Maintenance:~/work/stackoverflow$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...