[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [TEKNIK] Transmogriffe linux bash scripts til mac bash scripts



Den 15-02-2012 19:51, Peter Makholm skrev:
Frank Damgaard<sslug@sslug>  writes:

On 2012-02-14 22:18, Eskild Nielsen wrote:
JEg havde lavet en serie af bash scripts på min linux laptop, og ville prøve at køre dem
på en MAC

Succesen var mildest talt behersket, idet  sed virker temmelig anderledes


Mac bruger hverken unix linieskift \n eller windows/Dos \r\n

OS X er en unix og bruger internt \n til at angive linje-skift i
tekstfiler. Det gælder dens evindelige XML-filer, tekstfiler skrevet med
TextEdit og kildetekst skrevet i XCode.

Men de grafiske programmer supporterer vist stadigvæk filer med den den
gamle MacOS konvention transperant for brugeren. Men det er ikke den
normale OSX konvention for linjeskift.

Jeg skulle blandt andet indsætte et linieskift i en textfil, hver gang der var><  i filen

på linux: sed 's!><!>\n<!g' filnavn

men på mac bliver \n ikke opfattet som kontoltegn, men bliver taget for pålydende

Jeg er ikke sikker på hvad posix siger om sed-sproget, men jeg kan godt
reproducere dit problem. Ovenstående virker fint som perl-script, men
perl er heller ikke belastet af forskellige implementationer der tager
små forskellige valg.

Mit bedste bud på en kommando der virker som specificeret er:

$ sed $'s!><!>\\\n<!g' filename

Det virker under både Linux og OS X. Dollar-enkelt plinger er for at få
shellen til at fortolke escape sekvenserne. De to første backslashs
bliver så til en, som sed så ser og derfor gør "det rigtige".

//Makholm


Den skal bestemt prøves

Dollartegnet først på linien - er det prompten - eller skal det med i scriptet?

 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2012-03-01, 02:01 CET [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *