The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Identifiera IP-adressen för en skrivarkön i HP-Unix lenin1985 HP-UX 2 06-11-2008 04:21
Identifiera posterna med skräp-tecken i UNIX sureshg_sampat Shell-programmering och Skript 6 11-14-2007 02:44
Identifiera en fjärransluten dator som Windows eller Unix u449064 UNIX för avancerade & Expertanvändare 5 08-05-2006 01:03
Identifiera typ av fil DebianJ Shell-programmering och Skript 1 11-17-2005 11:55
hur UNIX identifiera C och andra språk-nummer! a25khan UNIX for Dummies Frågor & Svar 2 01-21-2004 10:44

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 02-10-2009
trichyselva trichyselva is offline
Registered User
  
 

Join Date: februari 2006
Inlägg: 65
hur man identifierar de steg i fil i UNIX

hej,
Jag har ett krav på att jag behöver bearbeta en indatafil
Problemet är indatafilen ibland är det som kommer i DOS-läge och några gånger de kommit i UNIX-läge
Skriptet som jag har skrivit kommer att behandla ärendet endast om det är i UNIX-läge och det är inte behandlingen om filen är i dos-läge
Finns det någon metod för att kontrollera om indatafilen är i DOS-läge eller i UNIX läge inom skriptet själv (medan bearbetning)
Så att jag kan hantera samma i mitt manus

Tack på förhand

Hälsningar,
Selvaraj S
  #2 (permalänk)  
Old 02-10-2009
rakeshou rakeshou is offline
Registered User
  
 

Join Date: maj 2007
Inlägg: 75
konvertera filen till UNIX

första konvertera Windows-fil till Unix-format med hjälp av

tr-d '\ r' <infile> outfile

eller

dos2unix infile> outfile

sedan processen.
  #3 (permalänk)  
Old 02-10-2009
sunpraveen's Avatar
sunpraveen sunpraveen is offline
Registered User
  
 

Join Date: Jan 2009
Ort: Pruthvi
Inlägg: 85
Selva,

Hur exakt är den fil som kommer till servern? Är det via FTP? Om ja, vilka läge använder du för att överföra? ASCII eller BINARY?

Observera att om FTP transfer mode är ASCII, så filerna kan ha ^ M tecken eller fyrkantiga askar till i slutet av varje rad, vilket kan leda till fel i ditt manus. Därför BINARY mode FTP-överföring är alltid att föredra.

HTH,

Hälsningar,

Praveen
  #4 (permalänk)  
Old 02-11-2009
trichyselva trichyselva is offline
Registered User
  
 

Join Date: februari 2006
Inlägg: 65
hej,
Jag tänker inte be om tr-d '\ r' <infile> outfile

om du är innanför skalet script, från manus själv kan du kontrollera om en fil med exekvera, läsa, skriva behörigheter

gillar att jag frågar. Från ett skal script jag vill kontrollera om indatafilen är i DOS-läge eller Unix-läge

Min avsikt är i alla format (DOS-eller UNIX) de skicka filen till UNIX fält mitt manus har att kontrollera den typ och om den inte matchar den måste omvandla den till UNIX läge med i tanken script vid hantering



tack
  #5 (permalänk)  
Old 02-11-2009
rakeshou rakeshou is offline
Registered User
  
 

Join Date: maj 2007
Inlägg: 75
Prova

Kod:
#!/bin/ksh

# to type ^M, keeping ctrl pressed, press vm

grep "^M" $1


RETURN_CODE=$?
echo $RETURN_CODE

if [ $RETURN_CODE -eq 0 ]; then
        echo "DOS File"
else
        echo "Unix File"
fi
  #6 (permalänk)  
Old 02-12-2009
trichyselva trichyselva is offline
Registered User
  
 

Join Date: februari 2006
Inlägg: 65
Hej,
Låt mig förklara problemet


Nedan några rader från en fil som heter retst.out
Jag kopierade några av linjerna genom att öppna filen i VI mode
Du kan se [DOS] i raderna nedan (i VI editor)

Indatafil i dos-läge
------------------------

2008110803000200050000011 10,0000 10,0000
2008111503000200050000011 10,0000 10,0000
2008112203000200050000011 10,0000 10,0000
2008112903000200050000011 10,0000 10,0000

"retst.out" [DOS] 52L, 3016C


Samma ärende efter det omvandlas UNIX läge

2008110803000200050000011 10,0000 10,0000
2008111503000200050000011 10,0000 10,0000
2008112203000200050000011 10,0000 10,0000
2008112903000200050000011 10,0000 10,0000
"retst.out" 52L, 2964C



Jag kommer att använda nedanstående rader för att omvandla min fil från DOS-läge till Unix-läge

tr-d '\ 15 \ 32' <retst.out> 1.txt
mv 1.txt retst.out


Om du ser filen ovan jag ser någon CTL + M (^ M) tecken i filen
Denna omställning jag ber.

Hur kan man göra samma sak

tack
  #7 (permalänk)  
Old 02-12-2009
pludi's Avatar
pludi pludi is offline Forum Staff  
Moderator
  
 

Join Date: Dec 2008
Ort:. Tillhör
Inlägg: 1.877
Bara ett klargörande: Uttrycket "mode" i UNIX vanligen avser tillstånd bits set (läs / skriv / kör). Vad menar du skulle vara en linje uppsägning stil (DOS / Windows: \ r \ n, UNIX: \ n Apple: \ r) eller filkodningen.
För att konvertera en fil från DOS-format till UNIX stil kommandona föreslagit rakeshou bör fungera alldeles utmärkt.
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 01:21.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0