for i in $(cat pokus.txt)do if [[ "$i" =~ '^[-]' ]]; then echo $i fidone
egrep '^-' [soubor] > soubor.radky-s-pomlckou
egrep -v '^-' [soubor] > soubor.radky-s-pomlckou
Pokud chceš jen vybrat řádky začínající pomlčkou, tak by mělo stačitKód: [Vybrat]egrep '^-' [soubor] > soubor.radky-s-pomlckouŘádky nezačínající pomlčkou pak:Kód: [Vybrat]egrep -v '^-' [soubor] > soubor.radky-s-pomlckou
while read RADEK; do echo ${RADEK}|egrep '^-' 1>/dev/null && { # radek s pomlckou na zacatku ... } || { # radek bez pomlcky na zacatku ... }done < [soubor]
A pokud jsi s těma řádkama chtěl něco dělat, tak zkus třeba:Kód: [Vybrat]while read RADEK; do echo ${RADEK}|egrep '^-' 1>/dev/null && { # radek s pomlckou na zacatku ... } || { # radek bez pomlcky na zacatku ... }done < [soubor]
#!/bin/bashwhile read i; do if [[ $i == -* ]]; then echo "zacina pomlckou: $i" else echo "nezacina pomlckou: $i" fidone < pokus.txt
#!/usr/bin/env pythonfor line in open("pokus.txt"): if line.startswith("-"): print "Radek s pomlckou:", line else: print "Radek bez pomlcky:", line
...egrep má parametr -q, aby se nemusel přesměrovávat do /dev/null.A potom je tam jeden potenciální zdroj chyb, pokud poslední příkaz v prvním bloku („radek s pomlckou na zacatku“) vrátí chybu, provede se i druhý blok.
Není jednodušší a přehlednější tohle, než všechny ty kryptické zápisy v bashi?...
Taky jsme mohli poradit něco v c++.Nebo v brainfucku?Tazatel začal ukázkou ve skriptu, tak se v tom dál pokračovalo, no.
Jen se snažím tazazeli naznačit, že si ušetří spoustu problémů, když na bash rychle zapomene a vybere si něco udržovatelnějšího . Jestli se tím bude řídit, je jen na něm.
Je to samozrejme na nem, ale jestli se zabyva linuxem, tak si spis usetri hodne problemu, kdyz se ten bash nauci. IMHO shell a coreutils jsou zaklad. Jsou v kazdem unixu a krypticky se jevi jen tem, kteri je neznaji. Admini i programatori si ze zrejmych duvodu pisi svoje skripty v pythonu, perlu apod., ale bez znalosti tech zakladu by se stejne potykali s problemy.
To je věc názoru, ale tohle téma na mě zatím působí tak, že bash na takové úrovni, aby v něm byl schopen napsat načtení souboru a otestování, že řádek začíná pomlčkou, zvládně bez chyb možná tak Sten a jinak nikdo. Což může znamenat, že všichni kromě Stena jsou blbci, nebo že je bash opravdu tak kryptický, že je lepší se mu vyhnout (nebo obojí ).
awk ' { if ( $0 ~ /^-/ ) { print $0 } else { print "rum" } } ' /temp/soubor