[Batch][Windows][CMD] Skrypt, który szuka i zamienia
[Batch][Windows][CMD] Skrypt, który szuka i zamienia
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
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.
Powód: Poprawa wiadomości.
-
- 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
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ń.
[Batch][Windows][CMD] Skrypt, który szuka i zamienia
To jest efekt działaniaC:\Users\talent\Desktop\plo>sed ':a;N;$!ba~;s/\n/ /g' config.yml
sed: -e wyrażenie #1, znak 1: nieznane polecenie: `''
Ostatnio zmieniony 21 kwie 2018, o 19:49 przez Jan Kraszewski, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Powód: Poprawa wiadomości.
-
- Użytkownik
- Posty: 22210
- Rejestracja: 15 maja 2011, o 20:55
- Płeć: Mężczyzna
- Lokalizacja: Bydgoszcz
- Podziękował: 38 razy
- Pomógł: 3755 razy
[Batch][Windows][CMD] Skrypt, który szuka i zamienia
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 --
E tam. Przecież robisz to w cmd a nie w bashu
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
[Batch][Windows][CMD] Skrypt, który szuka i zamienia
Ale przecież napisałem, że muszę tego użyć "w cmd windows"..
-
- Użytkownik
- Posty: 22210
- Rejestracja: 15 maja 2011, o 20:55
- Płeć: Mężczyzna
- Lokalizacja: Bydgoszcz
- Podziękował: 38 razy
- Pomógł: 3755 razy
[Batch][Windows][CMD] Skrypt, który szuka i zamienia
sed nie jest komenda Windowsowa.Armen10 pisze:Witam,
czy można w bashu w cmd windows napisać skrypt, który
Napisałeś bash, to rozumiemy, że masz w Windows emulator linuxa
[Batch][Windows][CMD] Skrypt, który szuka i zamienia
Nie, nie ma. Dlatego muszę działać na poleceniach cmd.
-
- 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
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
W Windowsie nie ma basha, jest batch. Googluj "batch string replace".
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".