Irjunk egy szkriptet, amely kicseréli a fájlban a peter nevet eva-ra? MYDIR=/home/peter. --->MYDIR=/home/eva
Adott egy szöveges fájl, mydir.txt egy sorral:MYDIR=/home/peter.
A szkriptet meg lehet írni az alábbi módon:
a. beolvassuk a cat segítségével egy változóba MYDIR -t tartalmazó sort a fájlból
b. A {} szerkezettel átírjuk peter-t eva-ra
c. egy ideiglenes fájlba írjuk a megváltoztatott sort
d. átnevezzük az ideiglenes fájl a régi névre, ez törölni fogja a régi fájlt
Nem teljesen értem, miért kell ezt bonyolultabban, mint #1, de az általad felvázolt menetet követve lehet valami ilyesmi:
#a. miután azt mondod, egy soros a fájl:
line=`cat mydir.txt`
#b. megint nem értem, miért így kell, miért nem jó a sed, de elvileg ennek is mennie kell, bár életemben nem használtam:
line_mod=${line/peter/eva}
#c. ,d. ezt is minek:
echo $line_mod > temp.txt
mv temp.txt mydir.txt
Szóval szerintem ez túl van bonyolítva :).
#!/bin/bash
sed -e "s/peter/eva/" $1 > tmp.txt
mv tmp.txt mydir.txt
# Tenleg hulyen kerik , de igy mukodik .
#4 Én is erre gondoltam egyből. "Tudok egy megoldást, de csak gömb alakú csirkékkel működik vákuumban."
#5 Igazából mindegyik változat működik, bár lehet, hogy parancsértelmezője válogatja valamennyire, viszont #1 a legtömörebb :).
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!