Hogy lehet txtből, sort kimásolni py vagy shell szkripttel? A sorok száma és a szerkezete mindig ua. A sorok tartalma viszont változik. Nem az egész sort szeretném kimásolni, csak egy részét. A sor1 tartalma xy"zz"xy Én csak a "zz" részt szeretném.
Ha mindenképpen python-t akar az ember erőltetni:
cat file | python -c 'for line in __import__("sys").stdin: print( line.split("\"")[1])'
(a pastebin-es megoldásban mintha az index el lenne csúszva)
Hopp, igen, javítva:
http://pastebin(pont)com/PyjL8xbr
#4, ez zseniális, köszi, nem ismertem ezt a módszert!
Windowson kicsit próbálkozni kellett vele, mert nem fogadja el az aposztrófot határolónak, aztán meg az idézőjelet nem vette be, végül így működött:
type deleteme.txt | python -c "for line in __import__('sys').stdin: print(line.split(chr(34))[1])"
"#4, ez zseniális, köszi, nem ismertem ezt a módszert! "
Az az igazság, hogy a python nem erre van kitalálva. Ha nem shell eszközökkel akar az ember dolgozni, akkor inkább perl, azt direkt felszerelték olyan funkcionalitással, ami a standard inputról érkező bemenet kezelését könnyíti meg:
cat file.txt | perl -F"\""-lane 'print $F[1]'
Meg ugye nagyon hasonló az awk-hoz (bár ez lehet, hogy nincs windows-ra):
cat file.txt | awk -F"\"" '{print $2}'
Hát ez nem akar sehogy sem összejönni.
Próbálom újra megfogalmazni a kérdésem.
Tehát, egy .txt sorának változó részét szertném másolni egy másik txt fájlba.
paste.ubuntu.com/23895030/
sed -n '1p' file.txt
sikerült kiíratnom a sor teljes tartalmát, tovább még nem jutottam.
Bash cat + cut:
cat file.txt | cut -d">" -f2 | cut -d"<" -f1
Bash sed:
sed 's/\(.*\)<link>\(.*\)<\/link>\(.*\)/\2/' file.txt
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!