Temat: Korekta tekstu

Całą dniówkę się bawiłem różnymi edytorami tekstu, poszukiwałem u wujka googla rozwiązań i nic. Temat nie dotyczy Atari, ale może tu znajdę pomoc. Opiszę co potrzebuję : Posiadam plik tekstowy i w nim występuje np. napis Prosz^ a ja automatycznie bądź po wykonaniu jakiejś instrukcji chciałbym mieć napis Proszę. Założenie też jest takie, że nie ma być to opcja znajdź i zamień bo ją w edytorach muszę każdorazowo zdefiniować. Nie ma to być też opcja autokorekty bo ona poprawia tylko w czasie pisania. Ja potrzebuję tekst pobrać z pliku lub w stawić w miejsce edycyjne jakiegoś programu. Muszę mieć zatem też możliwość zapisania w jakiejś bazie ciągu znaków wejściowych i ciągu wyjściowych. Opisałem to myślę dość szczegółowo - operacja w sumie wydaje się być prosta a sensownego programiku brak. Myślę, że rozwiązaniem byłby słownik w którym mam możliwość definiowania wyrazów - stworzenia swojej bazy. Czekam na pomysły!!! Proszę pomóżcie!!!

Żyję bo Bóg tak chciał.

2

Odp: Korekta tekstu

Piszesz "automatycznie bądź po wykonaniu jakiejś instrukcji" a nie jednoczesnie nie chcesz za kazdym razem definiowac "znajdz i zmien wszystko".
A moze zwykle makro podpiete pod klawisz?

3

Odp: Korekta tekstu

plik slownik.txt w formacie:

slowo_do_zamiany,na_jakie_zamienic
... 
...
...

nastepnie to zapisac jako sk.sh

#!/bin/sh                                                                       
                                                                                
if [ "$1" == "" ]; then                                                         
 echo "$0 nazwa_pliku"                                                          
 exit                                                                           
fi                                                                              
                                                                                
ORIG="$1"                                                                       
                                                                                
while read LINE; do                                                             
                                                                                
A=$(echo $LINE | cut -f1 -d',')                                                 
B=$(echo $LINE | cut -f2 -d',')                                                 
TMP=$(mktemp /tmp/dupa-XXXXXX)                                                  
                                                                                
sed s/$A/$B/g < $ORIG >$TMP                                                        
mv $TMP $ORIG                                                                   
                                                                                
done < slownik.txt

po czym odpalic na danym pliku (plikach)
./sk.sh plik_do_naprawy

pisane na szybko wiec moze wymaga korekt :)

4

Odp: Korekta tekstu

przy zalozeniach mikeja:

#!/bin/sh
if [ $# -ne 1  ]; then
  echo "$0 nazwa_pliku"
  exit
fi

sed -e "s|\(.*\),\(.*\)|s/\1/\2/g;|" <slownik.txt >/tmp/slownik_$$
sed -f /tmp/slownik_$$ -i $1
rm /tmp/slownik_$$

btw. jesli chcesz to uzywac pod winzgroza - potrzebujesz 2 polecen uniksowych: sh (lub bash) i sed
oba bardzo szybko mozna zainstalowac kozystajac z instalatora cygwina

ps. mikeya skrypcior zadziala jesli w linii zawierajacej wywolanie seda argument "ubierze sie" w cudzyslow i poprzedzi parametrem "-e"

Ostatnio edytowany przez jellonek (2006-10-24 16:40:26)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

5

Odp: Korekta tekstu

jellonek napisał/a:

ps. mikeya skrypcior zadziala jesli w linii zawierajacej wywolanie seda argument "ubierze sie" w cudzyslow i poprzedzi parametrem "-e"

nieprawda. jak masz tylko jeden regexp to nie musisz robic '-e' u ciebie sa dwa u mnie jeden wiec wszystko sie zgadza :)

6

Odp: Korekta tekstu

gdzie ty u mnie 2 widzisz? ;)
oj chyba ta okolistka sp**** robote :P

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep