Время от времени мне нравится вызов sed :с использованиемACCOUNT_ADDR=1234
:
sed -n -e '
x
$ i\
"'"$ACCOUNT_ADDR"'": {"balance":0},
2,$ p
$ { x; p }
' file
"accounts": {
"0x0000000000000000000000000000000000000008": { "builtin": { "name": "alt_bn128_pairing", "activate_at": "0x0", "pricing": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 } } } },
"1234": {"balance":0},
"0x00Ea169ce7e0992960D3BdE6F5D539C955316432": { "balance": "1606938044258990275541962092341162602522202993782792835301376" }
}
При этом используется x
, чтобы спрятать текущую строку в пространство хранения, чтобы она стала «предыдущей» строкой в следующем цикле.
Как упоминалось ранее, используйте sed -i
, чтобы сохранить изменения в -месте
Вы можете получить тот же результат, перевернув файл и используя более простую команду sed:
temp=$(mktemp)
tac file | sed '2a\
"'"$ACCOUNT_ADDR"'": {"balance":0},
' | tac > "$temp" && mv "$temp" file
На самом деле нет способа дать systemd список и сказать «запустить их в этом порядке». Вместо этого вы должны указать для каждой службы, в каком порядке она должна запускаться.
Таким образом, в ваш test2.service
вы должны включитьAfter=test1.service
(или вы можете сделать это наоборот, а в test1.service
включитьBefore=test2.service
)и сделать то же самое для каждой службы, которая должна запускаться в определенном порядке, используя Before
или After
, чтобы указать эти зависимости.