Kun avaan tiedoston Vimissä, näen outoja ^M merkkejä. 
Valitettavasti maailman suosikki hakukone ei toimi hyvin erikoismerkkien kanssa kyselyissä, joten kysyn täältä:
- 
Mikä tämä on ^Mmerkki?
- 
Kuinka se olisi voinut päästä sinne? 
- 
Kuinka pääsen eroon siitä? 
Kommentit
Vastaa
 ^M on kuljetus-paluu-merkki. Jos näet tämän, olet todennäköisesti tarkastelemassa tiedostoa, joka on peräisin DOS / Windows-maailmasta, jossa rivin loppu on merkitty vaunun paluu / uusi rivi -parilla, kun taas Unix-maailmassa rivin loppu on merkitty yhdellä uudella rivillä. 
Lue tämä artikkeli saadaksesi lisätietoja ja myös Wikipedia-merkinnän kohdasta newline .
Tässä artikkelissa käsitellään VIM: n asettamista muokkaamaan avoimesti tiedostoja, joilla on erilainen pääte rivimerkkejä.
 Jos sinulla on tiedosto, jossa on ^M joidenkin rivien lopussa ja haluat päästä eroon niistä, käytä tätä Vimissä: 
:s/^M$//  (Paina  Ctrl  +  V   Ctrl  +  M  lisätäksesi ^M.) 
Kommentit
-  Kokeile :%s/^M/\r/gsen sijaan, että poistat^Mja korvataan^Muudella rivillä . Ilman%komento koskee vain nykyistä riviä. Ja törmäsin joihinkin esimerkkeihin, joissa^Mei ole rivin lopussa, kutenThe first line.^MThe second line.
-  Tai jos älä ’ t halua kuormitettavia rivikatkoksia, voit vain tehdä :%s/^M/
- jos se ’ on vain itsensä palautus, se voi olla klassinen (ennen Unixia) Macintosh-rivinvaihto. Jopa jotkin uudemmat ohjelmat, kuten Excel 2007 for Mac, tekevät sen jostain syystä.
-  @larsks But  altap.cz/salamander/help/salamand/appember_txtfiles sanoo, että ^Mkäytetään UNIXissa
-  Etkö ole varma, onko se ’ jotain vim-määrityksessäni, mutta minun on kirjoitettava Ctrl+Qja sittenCtrl+Msaadaksesi kyseisen merkin luomaan!
Vastaus
Yksinkertainen tapa tehdä tämä on käyttää seuraavaa komentoa:
dos2unix filename Tämä komento toimii myös polkumallien kanssa, esim.
dos2unix path/name* Jos se ei toimi, yritä käyttää eri tilaa:
dos2unix -c mac filename -   -cAseta muuntotila. Jos CONVMODE on yksi seuraavista:ascii, 7bit, iso, macoletusarvonaascii.
Kommentit
-  +1 -c-oletusarvon ja muiden vaihtoehtojen mainitsemiseksi. Ensimmäisellä yrityksellä oletusarvolla ’ t ei ollut odotettuja tuloksia. dos2unix -c max-toiminnolla se toimi.dos2unix: converting file launch_me.sh to Unix format...
-  Hämmästyttävä pieni apuohjelma. Ubuntulle vain apt-get install dos2unix. Jos haluat käyttää sitä rekursiivisesti, voit viitata tähän ratkaisuun täällä: stackoverflow.com/questions/11929461/… Juoksin sitä typerästi jokaisessa hakemistossa manuaalisesti ja ajattelin vain etsiä tosiasian jälkeen.
Vastaa
Tämä toimi minulle
:e ++ff=dos Komento: e ++ ff = dos käskee Vimiä lukemaan tiedoston uudelleen pakottaen dos-tiedostomuotoa. Vim poistaa vain CRLF- ja LF-rivirivit, jättäen puskuriin vain kunkin rivin tekstin.
sitten
:set ff=unix ja lopuksi
:wq kommentit
- kiitos! tämä toimi minulle, mutta hyväksytty ratkaisu ei
-  viittaako fftiedostomuotoon? Entä++ff?
- Komento: e ++ ff = dos käskee Vimiä lukemaan tiedoston uudelleen pakottaen dos-tiedostomuotoa. Vim poistaa vain CRLF- ja LF-rivirivit, jättäen puskuriin vain jokaisen rivin tekstin.
- Jos haluat oppia ff: stä, suorita ”: help ff ”
- yksinkertainen ja tehokas . En ole varma, miksi kissatiedosto1 > > tiedosto2 ottaa käyttöön dos-rivinsyötteet, kun tiedosto 1 ei ’ t: llä ei ole sitä ensin
Vastaus
 Useimmissa UNIX-käyttöjärjestelmissä on apuohjelma dos2unix, joka muuntaa CRLF: n LF: ksi. Muut vastaukset kattavat ”mitä ne ovat” -kysymyksen. 
Vastaus
 Toinen tapa päästä eroon kuljetuspalautuksista on tr -komento. 
Minulla on pieni komentosarja, joka näyttää tältä
#!/bin/sh tmpfile=$(mktemp) tr -d "\r" <"$1" >"$tmpfile" mv "$tmpfile" "$1" vastaus
 Voit siivota tämän sed: 
sed -e "s/^M$//" < infile > outfile  Temppu on, kuinka syötät vaunun paluumatkan oikein. Yleensä sinun on kirjoitettava C-v C-m kirjoittaaksesi kirjaimellisen kuljetuspalautuksen. Voit myös asettaa sed-työn paikalleen 
sed -i.bak -e "s/^M$//" infile Vastaa
kanssa -paikkaratkaisu tarvitsematta kirjoittaa erikoismerkkiä (voit kopioida tämän ja se toimii):
sed -i -e "s/\r//g" filename Selitys:
-i: in-place -e: regular expression \r: escaped carriage return /g: replace globally Kommentit
-  Kysyjä oli jo muokkaamassa tiedostoa VIM: llä, huomautus. Ja täällä on ollut paikan päällä oleva sedvastaus vuodesta 2012.
- Joo, mutta hyvä, toimiva ratkaisu puuttui. Nykyinen sed-ratkaisu ’ ei toimi valmiina.
-  Dale Hagglund ’ s -paikka sedehdottomasti toimii alusta.
- No, ei minulle.
m Ubuntu LTS 18.04 -ohjelmassa.
Vastaa
  Mitä onko tämä ^ M?  
 ^ M on rivinvaihtomerkki. Jos näet tämän, olet todennäköisesti tarkastelemassa tiedostoa, joka on peräisin DOS / Windows-maailmasta, jossa rivin loppu on merkitty vaunun paluu / uusi rivi -parilla, kun taas Unix-maailmassa rivin loppu on merkitty yhdellä uudella rivillä. 
  Kuinka se olisi voinut päästä sinne?  
 Milloin on muutos tiedostomuodossa. 
  Kuinka pääsen eroon siitä?  
 avaa tiedosto, jossa on 
vim -b FILE_PATH tallenna se seuraavalla komennolla
:%s/^M//g Kommentit
- Sinulla ’ on kirjoitusvirhe avaamalla tiedostosi kanssa.
- Tämä vastaus ei lisää mitään muihin vastauksiin. Ensimmäinen kappale on melkein sanatarkasti kopio hyväksytystä vastauksesta. Annettu koodi ei tallenna mitään, mutta vain poistaa kaikki paluupalautukset merkkejä kaikilta riveiltä. Enkä ole varma, kuinka tiedoston avaaminen binaaritilassa h täältä.
Vastaa
Minun tapauksessani
Mikään yllä ei toiminut, minä oli kopioinut CSV-tiedoston Linux-koneelle Macistani ja käytin kaikkia yllä olevia komentoja, mutta mikään ei auttanut, mutta alla oleva
tr "\015" "\n" < inputfile > outputfile Minulla oli tiedosto, ^ M merkkiä hajautettiin rivien väliin, kuten alla.
Audi,A4,35 TFSi Premium,,CAAUA4TP^MB01BNKT6TG,TRO_WBFB_500,Trico,CARS,Audi,A4,35 TFSi Premium,,CAAUA4TP^MB01BNKTG0A,TRO_WB_T500,Trico, Kommentit
-  mac2unix -n inputfile outputfiletai vastaavastidos2unix -c mac -n inputfile outputfilehoitaa tilanteen.
Vastaa
Voit käyttää Vimiä Ex-tilassa:
 ex -bsc "%s/\r//|x" file  
- 
iv -bbinaaritila
- 
%valitse kaikki rivit
- 
skorvike
- 
\rrivinvaihto
- 
xtallenna ja sulje
Vastaa
Lisää seuraava rivi ~ / .vimrc-tiedostoosi
command! Tounix :call Preserve("1,$s/^M//") Kun sinulla on tiedosto, jossa on Windowsin rivin loppu, suorita komento ”: Tounix”.
vastaus
Aiemmin olen nähnyt, että edes määritystiedostoja ei ole jäsennelty oikein ja valittanut tyhjää tilaa, mutta jos vi ja tee asetettu luettelo, jota se ei voinut näyttää välilyönnillä, grep-tiedostonimi [[välilyönti]] näyttää sinulle ^ M
 että ”s kun dos2unix file auttaa 
Kommentit
- Tämä vastaus ei tuo mitään uutta, did2unix mainitaan jo ainakin kahdessa vastauksessaan paljon vanhemmassa.
help digraph-table.