Mulla on tiedostossa lista poistettavista tiedostoista. Jokaisen rivin eli tiedoston eteen pitäisi liittää "del ". Miten tämä tehdään windowsissa?
Linuxissa riittää shellissä ripsu "sed 's/^/del /' file1.txt > file2.txt" tekemään homman.
Linuxissa riittää shellissä ripsu "sed 's/^/del /' file1.txt > file2.txt" tekemään homman.
Vastaukset 7
Vanhimmat
Asenna Cygwin ja tee samalla tavalla kuin Linux-puolella?
for /F "tokens=*" %i in (lista.txt) do del "%i"
Selitystä komennosta: https://ss64.com/nt/for_f.html
Eikös tuo poista suoraan tiedoston eikä lisää jokaisen rivin alkuun del-komentoa.
Kyllä. Se toteuttaa sen mitä tapahtuisi kun aloittaja nimeäisi tiedostonsa .bat - tyyppiseksi ja ajaisi sen dos - promptista.
Jos aloittaja haluaa tehdä tuon saman sed - editoinnin Windowsin puolella niin komennosta sed löytyy kyllä Windowsissa ajettava versiokin. Hakusana: sed for windows.
Jos on pakko käyttää vain jo asennettuja Windows - komentoja niin onnistuu myös PowerShell - skriptillä sopivaa regex komentoa käyttäen. Esimerkiksi
https://mcpmag.com/articles/2018/08/08/replace-text-with-powershell.aspx
https://www.sharepointdiary.com/2021/04/string-replacement-in-powershell.html
Tuo "do del..." pitäisi varmaankin olla "do echo 'del...'" >uusilista.txt tjsp.
for /F "tokens=*" %i in (lista.txt) do echo del "%i" >> poistoskripti.bat
Tuossa paranneltu versio.
Asenna editori notepad++ ja tee merkkijonojen korvaus tiedostolle regex-lauseella.