[Batch][Windows][CMD] Skrypt, który szuka i zamienia

Armen10
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 18 wrz 2007, o 12:24
Płeć: Mężczyzna
Lokalizacja: Polska

[Batch][Windows][CMD] Skrypt, który szuka i zamienia

Post autor: Armen10 »

Witam,
czy można w batchu w cmd windows napisać skrypt, który:
1. wczytuje plik zewnętrzny o stałej nazwie config.yml
2. znajduje w nim:
- 3 spację pod rząd i usuwa je,
- 2 spację pod rząd i usuwa je,
- znajduję znak końca linii "
" i zamienia na 2 spacje,
- znajduje 2 spacje i m, czyli na "__m" i zamienić na "m"
- znajduje 2 spacje i t, czyli na "__m" i zamienić na "t"

Z góry dziękuję za pomoc
Ostatnio zmieniony 24 kwie 2018, o 06:26 przez Afish, łącznie zmieniany 2 razy.
Powód: Poprawa wiadomości.
a4karo
Użytkownik
Użytkownik
Posty: 22207
Rejestracja: 15 maja 2011, o 20:55
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 38 razy
Pomógł: 3754 razy

[Batch][Windows][CMD] Skrypt, który szuka i zamienia

Post autor: a4karo »

awk powinien sobie z tym łatwo poradzić
Armen10
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 18 wrz 2007, o 12:24
Płeć: Mężczyzna
Lokalizacja: Polska

[Batch][Windows][CMD] Skrypt, który szuka i zamienia

Post autor: Armen10 »

A ma ktoś pomysł, jak to napisać ?
athame
Użytkownik
Użytkownik
Posty: 576
Rejestracja: 2 lut 2012, o 21:42
Płeć: Mężczyzna
Lokalizacja: Radom
Podziękował: 1 raz
Pomógł: 64 razy

[Batch][Windows][CMD] Skrypt, który szuka i zamienia

Post autor: athame »

Armen10 pisze: - znajduję znak końca linii "\n" i zamienia na 2 spacje,
sed ':a;N;$!ba~;s/\n/ /g' config.yml

Jeśli chcesz zapisywać od razu do pliku, to wystarczy dodać przełącznik -i.
Reszta to proste znajdź i zamień.
Armen10
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 18 wrz 2007, o 12:24
Płeć: Mężczyzna
Lokalizacja: Polska

[Batch][Windows][CMD] Skrypt, który szuka i zamienia

Post autor: Armen10 »

C:\Users\talent\Desktop\plo>sed ':a;N;$!ba~;s/\n/ /g' config.yml
sed: -e wyrażenie #1, znak 1: nieznane polecenie: `''
To jest efekt działania :(
Ostatnio zmieniony 21 kwie 2018, o 19:49 przez Jan Kraszewski, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
a4karo
Użytkownik
Użytkownik
Posty: 22207
Rejestracja: 15 maja 2011, o 20:55
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 38 razy
Pomógł: 3754 razy

[Batch][Windows][CMD] Skrypt, który szuka i zamienia

Post autor: a4karo »

A poza tym zadanie trzeba doprecyzowac: czy cztery spacje to trzy spacje i jedna (wtedy ta jedna Zidane) czy to dwa razy po dwie spacje (wtedy obie znikną.

A jak zamieni koniec linii na dwie spacje a następna linia zaczyna się od m, to co z tym zrobić.
Musisz poważnie pomyśleć co chcesz osiągnąć

-- 21 kwi 2018, o 11:00 --
Armen10 pisze:C:\Users\talent\Desktop\plo>sed ':a;N;$!ba~;s/\n/ /g' config.yml
sed: -e wyrażenie #1, znak 1: nieznane polecenie: `''

To jest efekt działania :(

E tam. Przecież robisz to w cmd a nie w bashu
Armen10
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 18 wrz 2007, o 12:24
Płeć: Mężczyzna
Lokalizacja: Polska

[Batch][Windows][CMD] Skrypt, który szuka i zamienia

Post autor: Armen10 »

Ale przecież napisałem, że muszę tego użyć "w cmd windows"..
a4karo
Użytkownik
Użytkownik
Posty: 22207
Rejestracja: 15 maja 2011, o 20:55
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 38 razy
Pomógł: 3754 razy

[Batch][Windows][CMD] Skrypt, który szuka i zamienia

Post autor: a4karo »

Armen10 pisze:Witam,
czy można w bashu w cmd windows napisać skrypt, który
sed nie jest komenda Windowsowa.
Napisałeś bash, to rozumiemy, że masz w Windows emulator linuxa
Armen10
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 18 wrz 2007, o 12:24
Płeć: Mężczyzna
Lokalizacja: Polska

[Batch][Windows][CMD] Skrypt, który szuka i zamienia

Post autor: Armen10 »

Nie, nie ma. Dlatego muszę działać na poleceniach cmd.
a4karo
Użytkownik
Użytkownik
Posty: 22207
Rejestracja: 15 maja 2011, o 20:55
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 38 razy
Pomógł: 3754 razy

[Batch][Windows][CMD] Skrypt, który szuka i zamienia

Post autor: a4karo »

cmd nie jest raczej narzędziem do procesowania plikó tekstowych. Pomysl o VBScripts
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[Batch][Windows][CMD] Skrypt, który szuka i zamienia

Post autor: Afish »

Jeżeli możesz doinstalować narzędzia coreutils, to poszukaj unxutils lub gnuwin32.
Jeżeli możesz użyć powershella (jest domyślnie zainstalowany w szanującym się windowsie), to wyrażenia regularne to załatwią: ... st-friend/
Jeżeli możesz użyć podsystemu linuksa w Windowsie 10, to użyj seda.
Jeżeli nie możesz nic z tego, to

Kod: Zaznacz cały

https://ss64.com/nt/syntax-replace.html


W Windowsie nie ma basha, jest batch. Googluj "batch string replace".
ODPOWIEDZ