Не удается извлечь файлы в папку opt

Вы можете добавить строку после слов "учетные записи",

sed "/accounts/ a\
  \"$ACCOUNT_ADDR\": { \"balance\": \"1606938044258990275541962092341162602522202993782792835301376i\" }
" file

("экранированы, чтобы вставить переменную)

sed "s/^ }$/ \"$ACCOUNT_ADDR\": { \"balance\": \"1606938044258990275541962092341162602522202993782792835301376i\" }\n }/g" file

Заменит вашу строку }и напечатает две строки.

Запустите sed -i...для изменения файла в цикле:

$  cat file
"accounts": {
    "0x0000000000000000000000000000000000000008": { "builtin": { "name": "alt_bn128_pairing", "activate_at": "0x0", "pricing": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 } } } },
    "0x00Ea169ce7e0992960D3BdE6F5D539C955316432": { "balance": "1606938044258990275541962092341162602522202993782792835301376" }
 }

$ cat script.sh
#!/bin/bash

for i in $(seq 1 5); do
  ACCOUNT_ADDR="account_"$i
  sed -i "/accounts/ a\
      \"$ACCOUNT_ADDR\": { \"balance\": \"1606938044258990275541962092341162602522202993782792835301376i\" }
  " file
done

$./script.sh
$ cat file
"accounts": {
"account_5": { "balance": "1606938044258990275541962092341162602522202993782792835301376i" }
"account_4": { "balance": "1606938044258990275541962092341162602522202993782792835301376i" }
"account_3": { "balance": "1606938044258990275541962092341162602522202993782792835301376i" }
"account_2": { "balance": "1606938044258990275541962092341162602522202993782792835301376i" }
"account_1": { "balance": "1606938044258990275541962092341162602522202993782792835301376i" }
    "0x0000000000000000000000000000000000000008": { "builtin": { "name": "alt_bn128_pairing", "activate_at": "0x0", "pricing": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 } } } },
    "0x00Ea169ce7e0992960D3BdE6F5D539C955316432": { "balance": "1606938044258990275541962092341162602522202993782792835301376" }
 }

0
01.11.2018, 15:04
1 ответ

У вас опечатка в имени файла. Второй символ в каталоге имеет заглавную букву L. Ваша команда tarпытается сослаться на файл со строчной буквой lв качестве второго символа.

Файловые системы Linux/UNIX почти всегда чувствительны к регистру.

Как правило, рекомендуется указывать символ zв команде tar, чтобы показать, что вы знаете, что имеете дело со сжатым файлом(gz). Вам это не нужно, но хорошо включить его.

tar xzf CLion-2018.2.4.tar.gz -C /opt
6
28.01.2020, 02:15

Теги

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