Wpis z mikrobloga

Problem natury #informatyka #programowanie #linux:

Mam kilkanaście komputerów, z którymi muszę się połączyć po SSH i zmodyfikować im konkretny skrypt. Muszę znaleźć w pliku konkretną linię i wstawić po niej dodatkowe polecenie. Nie mogę po prostu wgrać nowego pliku. Czy da się (i jak) to zrobić przy pomocy SEDa? Skończyła mi się inwencja ( ͡° ʖ̯ ͡°)

Aktualny skrypt:

echo „01” > /coś/coś/coś/cośinnego
echo „02” > /coś/coś/coś/cośinnego
echo „03” > /coś/coś/coś/cośinnego

Co chcę zrobić:

echo „01” > /coś/coś/coś/cośinnego
echo „02” > /coś/coś/coś/cośinnego
echo „77” > /coś/coś/coś/cośinnego2
echo „03” > /coś/coś/coś/cośinnego
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ponton: dysponuję wyłącznie SSH
@size: odpada, pliki niekoniecznie są do siebie podobne. Muszę znaleźć sposób na dopisanie jednego polecenia po konkretnym stringu. Myślałem o odpaleniu na każdej maszynie skryptu w postaci:

searchreplace() {
local search="echo „02” > /coś/coś/coś/cośinnego"
local replace="echo „02” >
  • Odpowiedz
Twój problem wynika z tego, że używasz "/" zarówno jako separatora w SED, jak i w skrypcie. Użyj innego separatora sed np. '@':

zakładam, że w konfiguruj.sh masz:

echo "01" /cos/cos/cos
echo "02" /cos/cos/cos
  • Odpowiedz