Go Back   De Unix-en Linux Forum > Top Forums > UNIX voor Dummies Questions & Answers
.
Google Site



UNIX voor Dummies Questions & Answers Als u niet zeker weet waar je een Unix-of Linux vraag, post het hier. Alle UNIX-en Linux beginners van harte welkom!!

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-07-2007
Geregistreerde gebruiker
 

Join Datum: oktober 2007
Posten: 3
Post awk gebied niet in backquotes

Hoi,

Ik ben het schrijven van een script om awk gebruiken om een set van cp commando te genereren uit een input bestand abc.

bestand abc:
/ data / a.dbf
/ data / juni / b.dbf

gewenste output:
CP --pr a.dbf / data / a.dbf
CP --pr b.dbf / data / juni / b.dbf

script:
$ Cat abc | awk '(print "CP --pr ' `basename $ 1"' "$ 1) '

Ik probeerde awk gebruik met basename commando, maar het lijkt erop dat het veld $ 1 in aanhalingstekens openen niet wordt herkend door awk. How to fix it?

Hartelijk dank,
voa2mp3
Sponsored Links
  #2 (permalink)  
Old 10-07-2007
zazzybob's Avatar
Geregistreerd Geek
 

Join Date: december 2003
Locatie: Melbourne, Australië
Berichten: 2100
Een paar oplossingen

awk:

Code:
$ awk '{s=$0;gsub( /^.*\//, "" );printf("cp -pr %s %s\n", $0, s )}' abc
cp -pr a.dbf /data/a.dbf
cp -pr b.dbf /data/june/b.dbf

sed:

Code:
$ sed 's!^\(.*\)/\(.*\)!cp -pr \2 \1/\2!' abc 
cp -pr a.dbf /data/a.dbf
cp -pr b.dbf /data/june/b.dbf

bash / ksh:

Code:
$ while read file; do echo "cp -pr ${file##*/} ${file}"; done < abc 
cp -pr a.dbf /data/a.dbf
cp -pr b.dbf /data/june/b.dbf

  #3 (permalink)  
Old 10-07-2007
Geregistreerde gebruiker
 

Join Datum: oktober 2007
Posten: 3
Hi zazzybob,

Bedankt voor je hulp.

voa2mp3
  #4 (permalink)  
Old 10-07-2007
drl's Avatar
DRL drl is offline Forum Advisor  
Geregistreerde gebruiker
 

Join Date: Apr 2007
Plaats: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 779
Hoi.
Citaat:
Oorspronkelijk geplaatst door voa2mp3 View Post
...
bestand abc:
/ data / a.dbf
/ data / juni / b.dbf

gewenste output:
CP --pr a.dbf / data / a.dbf
CP --pr b.dbf / data / juni / b.dbf
...
Het plaatsen van de ingang op fille "data1", en het veranderen van je script iets naar:

Code:
#!/usr/bin/env sh

# @(#) a1       Demonstrate awk feature "command | getline".

set -o nounset
echo

## Use local command version for the commands in this demonstration.

echo "(Versions of codes used in this script -- local code \"version\")"
version bash awk

echo

awk '
        { command = "basename " $1
        command | getline file
        print "cp -pr " file " " $1 }
' data1

exit 0

produceert:

Code:
% ./a1

(Versions of codes used in this script -- local code "version")
GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
GNU Awk 3.1.4

cp -pr a.dbf /data/a.dbf
cp -pr b.dbf /data/june/b.dbf

cheers, DRL
  #5 (permalink)  
Old 10-07-2007
radoulov's Avatar
--
 

Join Date: Jan 2007
Locatie: Варна, България / Milano, Italia
Berichten: 3.221
Enkele andere manieren


Code:
% set -- $(<file)                                                   
% paste -d" " <(printf "cp -pr %s\n" "${@##*/}") <(printf "%s\n" "$@")
cp -pr a.dbf /data/a.dbf
cp -pr b.dbf /data/june/b.dbf

en met zsh:


Code:
zsh 4.3.4% <file while IFS= read;do print -r "cp -pr $REPLY:t $REPLY";done 
cp -pr a.dbf /data/a.dbf
cp -pr b.dbf /data/june/b.dbf

of awk:


Code:
zsh 4.3.4% awk '$0="cp -pr "$NF" "$0' FS="/" file
cp -pr a.dbf /data/a.dbf
cp -pr b.dbf /data/june/b.dbf

Sponsored Links
Closed Thread

Bladwijzers

Labels
Linux commando's

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Uit


Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
jar commando niet wordt herkend orahi001 UNIX voor Dummies Questions & Answers 1 05-06-2008 11:29
Ophalen 5e veld naar laatste veld! jobbyjoseph UNIX voor Dummies Questions & Answers 3 05-16-2007 04:20
Bewegend deel van een gebied naar een ander veld met AWK rjsha1 Programmeren en Shell Scripting 5 08-04-2006 06:39
Ik ben niet wordt erkend Help Forum Support Ruimte voor Unregistered Gebruikers Account & Problemen 0 01-10-2006 04:30
Argument niet herkend als integer scmay Programmeren en Shell Scripting 1 05-14-2004 03:41



Alle tijden zijn GMT -4. Het is nu 07:42.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De UNIX-en Linux Forums Copyright © 1993-2010. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0