The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Newbie aider à New Line & Blank Line kthatch UNIX pour les nuls Questions et réponses 5 01-23-2009 04:19 PM
sed: supprimer regex ligne et la ligne suivante si vide one71 De programmation et de script Shell 2 09-18-2008 06:53 AM
Comment obtenir la dernière ligne non vide? tqlam De programmation et de script Shell 6 01-17-2008 07:13 PM
Ligne blanche? varungupta UNIX for Advanced & Expert Users 2 09-10-2007 01:52 PM
cant trouver la commande qui renvoie ligne jeffersno1 UNIX pour les nuls Questions et réponses 2 11-15-2001 04:14 PM

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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 03-18-2009
ddrew78 ddrew78 is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 8
Trouver la ligne de vide avant de

Bonjour,

J'ai deux questions. Tout d'abord, voici le fichier de la façon dont elle est maintenant.

someword someword: 1
nouveau-mot nouveau mot-abcd
someword someword: 10
nouveau-mot nouveau mot-abcd
thisis whatIneed: 3


someword someword: 5
nouveau-mot nouveau mot-abcd

J'ai besoin d'obtenir la ligne avant le 2 flans et le déplacer vers un autre fichier. J'ai essayé d'utiliser sed, Mais j'ai des messages d'erreur. Aussi, il mai être zéro, un ou plusieurs exemples de cela dans le fichier.

Je devrais probablement mentionner également que cela fait partie d'un plus grand perl script sur lequel je travaille. J'ai tout fait, le fichier ci-dessus est générée par le script. J'ai aussi tout ce qu'il complète ci-dessous, mais je suis complètement bloquée à ce point.

Toute aide soit serait appréciée.

Dernière édition par ddrew78; au 03.18.2009 07:43 PM..
  #2 (permalink)  
Old 03-18-2009
summer_cherry summer_cherry is offline Forum Advisor  
Registered User
  
 

Date d'inscription: juin 2007
Lieu: Beijing Chine
Posts: 1088
environ au-dessous de la pensée, l'espoir peut vous aider à certaines

Code:
open $fh,"<","yourfile";
open $out,">>","youroutfile";
undef $/;
$str=<$fh>;
print $out split(/\n^$\n^$\n/s,$str,2)[0];
  #3 (permalink)  
Old 03-18-2009
aaaaargh aaaaargh is offline
Registered User
  
 

Join Date: Aug 2006
Messages: 20
Voici le mien, laid mais devrait faire l'affaire

(non testé)

Code:
awk 'BEGIN{i=0}
  { content[NR]=$0; if (($0=="")) {b[i]=NR;i++} j++;} 
  END 
 { 
   for (x=0;x<=b[0];x++) 
  {print content[x] > "file1" } for (x=b[1];x<=j; x++) { print content[x] > "file2"}   
}'  /var/tmp/file
  #4 (permalink)  
Old 03-19-2009
ddrew78 ddrew78 is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 8
Re: Trouver la ligne de vide avant de

été cerise,

voici ce que je me suis retrouvé dans mon script:

#! / usr / bin /perl

open $ fh ,"<"," mon_fichier ";
ouvert ,">>"," mynewfile $ out ";
undef $ /;
$ str \u003d <$ fh>;
print $ out split (/ \ n $ ^ \ n $ ^ \ n / s, $ str, 2) [0];

J'ai reçu le message d'erreur ci-dessous. Des idées? J'apprécie l'aide.

ansipre2 erreur de syntaxe à la ligne 7, près de ") ["
Exécution de ansipre2 avorté en raison d'erreurs de compilation.
  #5 (permalink)  
Old 03-19-2009
ddrew78 ddrew78 is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 8
Re: Trouver la ligne de vide avant de

Citation:
Posté par aaaaargh View Post
Voici le mien, laid mais devrait faire l'affaire

(non testé)

Code:
awk 'BEGIN{i=0}
  { content[NR]=$0; if (($0=="")) {b[i]=NR;i++} j++;} 
  END 
 { 
   for (x=0;x<=b[0];x++) 
  {print content[x] > "file1" } for (x=b[1];x<=j; x++) { print content[x] > "file2"}   
}'  /var/tmp/file


Merci pour la réponse. Malheureusement, je suis nouveau sur ce point et ne peut pas savoir comment mettre en œuvre la présente dans mon script. Vous trouverez ci-dessous les deux dernières lignes du script pour obtenir le fichier ci-dessus, j'ai eu.

système "dos2unix ansi3> ansi7";
système mv ansi7 ansi3 ";

Merci encore pour toute aide.
  #6 (permalink)  
Old 03-19-2009
rikxik's Avatar
rikxik rikxik is offline
Registered User
  
 

Join Date: Dec 2007
Messages: 250
Code:
$ cat sd
sed -n '/^$/!{
h
}
/^$/{
N
/^\n$/ {
x
p
q
}
}' fl
$
$ cat fl
someword someword:1
new-word new-word abcd
someword someword:10
new-word new-word abcd
thisis whatIneed:3


someword someword:5
new-word new-word abcd
$
$ sd
thisis whatIneed:3
Soyez prudent lorsque vous collez le couper - il ne doit y avoir tous les espaces.

Dernière édition par rikxik; au 03.19.2009 10:49 PM..
  #7 (permalink)  
Old 03-20-2009
ddrew78 ddrew78 is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 8
Merci à tous ceux qui m'ont aidé sur ce point. Après beaucoup de douleur, j'ai décidé d'aller à une autre voie et, au lieu de répéter la chaîne en annexe à sa ligne précédente. Certes, qui a donné lieu à quelques lignes de code, mais ce que le diable. Just an FYI, ci-dessous est le code qui a fini par me donner le sens que je cherche était à l'origine.



open (FILE7, "> file7");
open (MYINPUTFILE, "fichier3");

while (<MYINPUTFILE>) (
chomp;
my $ someword \u003d "";
my $ new-word \u003d "";
if (/ ^ someword /) ($ someword \u003d $ _; while (<MYINPUTFILE>) (chomp;
if (/ ^ nouveau mot /) (
FILE7 print "$ someword $ _";
FILE7 print "\ n";)
dernier;
)
)
)
système mv file7 fichier3 ";
système "dos2unix fichier3> file7";
système mv file7 fichier3 ";
système de "chat fichier3 | cut-d" "-f1-2>> file0 ';
système de tri-n file0> fichier1 ";
système mv fichier1 file0 ";
système de «tri file0 | uniq-u> fichier1";
système mv fichier1 file0 ";
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 12:57 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0