The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
erstatning af flere linjer med enkelt linje siba.s.nayak Shell Programmering og Scripting 3 05-28-2008 03:43 AM
bruger tr at lægge flere linjer af produktionen i en linje otes4 Shell Programmering og Scripting 3 02-18-2008 11:30 AM
Concatenating flere linjer til en linje, hvis matcher mønstret phixsius Shell Programmering og Scripting 13 01-24-2008 11:02 PM
Split en enorm linje i flere 120 tegn strækninger med sed? jerome_1664 Shell Programmering og Scripting 2 08-17-2006 01:03 PM
Opdele en enkelt linje i flere linjer thanuman Shell Programmering og Scripting 4 02-23-2005 04:56 AM

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øg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 03-29-2008
dd_sh dd_sh is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 2
Unhappy Splitting linjen på flere linjer

Hi Guys,

Jeg har brug for en hjælp. Jeg er ret ny på tanken niveau programing. Jeg forsøgte at splitte en lang linjer til en flere linjer med få betingelser. Jeg goggle til koden og fundet nogle uddrag og forsøgte at ændret det, men jeg fik nogle mærkelige problemer også.

Jeg er nødt til at opdele de linjer, hvis linjen er længere end 120 tegn, så jeg er nødt til at adskille det ved at tilføje "\" i slutningen af omkring 120. Karakter. Bemærk, det kan kun adskilles ved afgrænsningen stillinger, såsom rum eller komma. Og her er koden for at

#! / bin / sh

awk '(
if (length ($ 0)> 120)
(
str \u003d $ 0;
i \u003d 0;

while (length (str)> 120)
(
j \u003d 0;
for (m \u003d 1 m <\u003d 120 m + +)
(
bogstav \u003d substr ($ 0, I + m, 1);
# printf ( "% s \ n", brev);
if (bogstav !\u003d",")

anden
(
j \u003d m;
# Printf ( "% s \ n", substr ($ 0, i +1, j));
)
fi
if (bogstav! \u003d "")

anden
(J \u003d m;)
fi

)

printf ( "% s / \ n", substr ($ 0, i +1, j));

i + \u003d j;
str \u003d substr ($ 0, I, længde ($ 0));
)

if (length (str)> 1)
printf ( "% s \ n", substr (str, 2, længde (str)));

)
anden
(
print $ 0
)
) 'Myfile.txt


Men mit problem var, at ovennævnte betingelse er arbejde, hvis der sættes i indsendt orden. Hvis jeg vant til at arbejde med lige til og sætte udtrykket efter, så er det ikke fungerer korrekt.

Jeg var heller ikke i stand til at bruge eller udtryk for komma og rum

Jeg har også brug for det program, som kan vende tilbage den samme operation. Jeg læser også få tutorial om sed men fandt sin ret forvirrende for nye brugere
  #2 (permalink)  
Old 03-30-2008
epoke era is offline Forum Advisor  
Herder af Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: / der / er / kun / bin / sh
Stillinger: 3652
Old C programmør, huh? Velkommen til høj-niveau sprog, hvor du ikke nødt til at genopfinde strlen i hvert projekt.

mand fold

perl -pe 's / (. (1119) [,]) / \ 1 \ \ \ n / g'

Jeg forstår ikke spørgsmålet om OR. Hvad gjorde du forsøger, og hvordan gjorde ikke det?


Code:
if (letter == " " || letter == ",")

  #3 (permalink)  
Old 03-31-2008
dd_sh dd_sh is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 2
Hej
Tak for svaret.
Ja jeg har arbejdet på C og VB, men ikke i disse tomme niveau programmering. Og største problem for mig om disse programing er de næppe give mig fejlmeddelelse, og jeg kan ikke kontrollere betingelsen om debug mode.

For eller logik jeg prøvede

Code:
if (letter = " " -o letter = ",")

som jeg fandt på nogle tutorials.
Og jeg har også læst, at for lig at vi er nødt til at bruge en enkelt '\u003d' ikke som'\u003d\u003d'' som C + +

Er denne linje er den samme operation som min???

Code:
perl -pe 's/(.{1,119}[ ,])/\1\\\n/g'

Det er virkelig svært at finde ud af, hvad der sker med disse kode. Jeg kender nogle ting
a) til at håndtere de strenge, vi er nødt til at give "i starten og slutningen af kommandoen
b) alle argumenter, der bør være adskilt af /
Jeg ved virkelig ikke nogen ting ud over dem, fra denne kode

  #4 (permalink)  
Old 03-31-2008
epoke era is offline Forum Advisor  
Herder af Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: / der / er / kun / bin / sh
Stillinger: 3652
Du har læst shell programmering tutorials (og muligvis C shell, hvis de råd runde parenteser i hvis - Der er anderledes end Bourne shell, lidt ligesom Java er helt i modsætning til JavaScript, men ikke helt så uafhængige), men det program, du har skrevet, er i awk sprog, der er slet ikke det samme. Sammenlign med, hvordan du kan bruge en DLL skrevet på et andet sprog fra et C-program. Men med scripts, kan kilden være på to forskellige sprog, og ofte er - du ofte sat små awk eller sed eller Perl eller TCL eller ... andre scripts i shell-scripts, hvor tanken egen syntaks eller faciliteter, der ikke passer til problemet rummet godt nok.

Den Perl Programmet gør hvad jeg kan forestille mig din spec siger det skal gøre. Prøv det og se. Den erstatter multipla af 119 charactes eller mindre efterfulgt af et mellemrum eller et komma med det samme streng plus en omvendt skråstreg og en ny linje. Du kan gøre det samme i sed eller awk, Om end ikke helt så rammende, det vigtigste begreb her er der en regulære udtryk, Hvilket er en facilitet alle disse sprog giver. (Jeg tror du har det i VB, også, og der er C biblioteker kan du linke til hvis du vil.) Læs op på, at det er et meget nyttigt og alsidigt værktøj, helt uafhængigt af bestemte sprog.
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 06:09 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0