Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal Bourguignon
writes:
J'essaye de passer une commande sed sur tous les fichier d'un repertoire et marche pas, pourquoi ?
#!/bin/bash function f_sed { sed -e "1,25d" > "$1" # ou -> sed -e "1,25d" "$1" > "$1" } { find -type f -name "*.html" echo "EOF" } | { while true; do read -r i test "$i" = "EOF" && break f_sed "$i" done }
Merçi pour toutes aide
DIRECTORY="." # par exemple find $DIRECTORY -type f -name *.html -print | while read -r file ; do cp ${file} ${file}~ && sed -e '1,25d' < ${file}~ > ${file} done
find prend un répertoire!
commence par tronquer le fichier, alors { cmd <f >f } ne va rien lire.
Nobody can fix the economy. Nobody can be trusted with their finger on the button. Nobody's perfect. VOTE FOR NOBODY.
philafil@free.fr writes:
J'essaye de passer une commande sed sur tous les fichier d'un
repertoire et marche pas, pourquoi ?
#!/bin/bash
function f_sed {
sed -e "1,25d" > "$1"
# ou -> sed -e "1,25d" "$1" > "$1"
}
{
find -type f -name "*.html"
echo "EOF"
} | {
while true; do
read -r i
test "$i" = "EOF" && break
f_sed "$i"
done
}
Merçi pour toutes aide
DIRECTORY="." # par exemple
find $DIRECTORY -type f -name *.html -print | while read -r file ; do
cp ${file} ${file}~ && sed -e '1,25d' < ${file}~ > ${file}
done
find prend un répertoire!
commence par tronquer le fichier, alors { cmd <f >f } ne va rien lire.
J'essaye de passer une commande sed sur tous les fichier d'un repertoire et marche pas, pourquoi ?
#!/bin/bash function f_sed { sed -e "1,25d" > "$1" # ou -> sed -e "1,25d" "$1" > "$1" } { find -type f -name "*.html" echo "EOF" } | { while true; do read -r i test "$i" = "EOF" && break f_sed "$i" done }
Merçi pour toutes aide
DIRECTORY="." # par exemple find $DIRECTORY -type f -name *.html -print | while read -r file ; do cp ${file} ${file}~ && sed -e '1,25d' < ${file}~ > ${file} done
find prend un répertoire!
commence par tronquer le fichier, alors { cmd <f >f } ne va rien lire.
Nobody can fix the economy. Nobody can be trusted with their finger on the button. Nobody's perfect. VOTE FOR NOBODY.
Stephane Chazelas
On 6 Jul 2005 01:34:02 -0700, wrote:
J'essaye de passer une commande sed sur tous les fichier d'un repertoire et marche pas, pourquoi ?
Parce que tu dis au shell de creer un fichier "$1" vide et ensuite tu dis a sed d'ecrire dedans. sed voit donc un fichier vide au moment ou il se lance.
#!/bin/bash function f_sed { sed -e "1,25d" > "$1" # ou -> sed -e "1,25d" "$1" > "$1" } { find -type f -name "*.html" echo "EOF" } | { while true; do read -r i test "$i" = "EOF" && break f_sed "$i" done } [...]
J'ecrierais ca:
perl -ni -e 'print if $. > 25' ./**/*.html(.D)
Mais faut dire que j'utilise zsh.
-- Stephane
On 6 Jul 2005 01:34:02 -0700, philafil@free.fr wrote:
J'essaye de passer une commande sed sur tous les fichier d'un
repertoire et marche pas, pourquoi ?
Parce que tu dis au shell de creer un fichier "$1" vide et
ensuite tu dis a sed d'ecrire dedans. sed voit donc un fichier
vide au moment ou il se lance.
#!/bin/bash
function f_sed {
sed -e "1,25d" > "$1"
# ou -> sed -e "1,25d" "$1" > "$1"
}
{
find -type f -name "*.html"
echo "EOF"
} | {
while true; do
read -r i
test "$i" = "EOF" && break
f_sed "$i"
done
}
[...]
J'essaye de passer une commande sed sur tous les fichier d'un repertoire et marche pas, pourquoi ?
Parce que tu dis au shell de creer un fichier "$1" vide et ensuite tu dis a sed d'ecrire dedans. sed voit donc un fichier vide au moment ou il se lance.
#!/bin/bash function f_sed { sed -e "1,25d" > "$1" # ou -> sed -e "1,25d" "$1" > "$1" } { find -type f -name "*.html" echo "EOF" } | { while true; do read -r i test "$i" = "EOF" && break f_sed "$i" done } [...]
J'ecrierais ca:
perl -ni -e 'print if $. > 25' ./**/*.html(.D)
Mais faut dire que j'utilise zsh.
-- Stephane
Laurent Wacrenier
Stephane Chazelas écrit:
perl -ni -e 'print if $. > 25' ./**/*.html(.D)
Ça marche ? À priori, $. n'est remis à 0 qu'après un close() explicite. (ajouter "close if eof")
Ça marche ? À priori, $. n'est remis à 0 qu'après un close() explicite. (ajouter "close if eof")
philafil
Bonjour,
writes:
J'essaye de passer une commande sed sur tous les fichier d'un repertoire et marche pas, pourquoi ?
#!/bin/bash function f_sed { sed -e "1,25d" > "$1" # ou -> sed -e "1,25d" "$1" > "$1" } { find -type f -name "*.html" echo "EOF" } | { while true; do read -r i test "$i" = "EOF" && break f_sed "$i" done }
Merçi pour toutes aide
DIRECTORY="." # par exemple find $DIRECTORY -type f -name *.html -print | while read -r file ; do cp ${file} ${file}~ && sed -e '1,25d' < ${file}~ > ${file} done
find prend un répertoire!
commence par tronquer le fichier, alors { cmd <f >f } ne va rien lire.
Merçi marche nickel !
Philippe
Bonjour,
philafil@free.fr writes:
J'essaye de passer une commande sed sur tous les fichier d'un
repertoire et marche pas, pourquoi ?
#!/bin/bash
function f_sed {
sed -e "1,25d" > "$1"
# ou -> sed -e "1,25d" "$1" > "$1"
}
{
find -type f -name "*.html"
echo "EOF"
} | {
while true; do
read -r i
test "$i" = "EOF" && break
f_sed "$i"
done
}
Merçi pour toutes aide
DIRECTORY="." # par exemple
find $DIRECTORY -type f -name *.html -print | while read -r file ; do
cp ${file} ${file}~ && sed -e '1,25d' < ${file}~ > ${file}
done
find prend un répertoire!
commence par tronquer le fichier, alors { cmd <f >f } ne va rien lire.
J'essaye de passer une commande sed sur tous les fichier d'un repertoire et marche pas, pourquoi ?
#!/bin/bash function f_sed { sed -e "1,25d" > "$1" # ou -> sed -e "1,25d" "$1" > "$1" } { find -type f -name "*.html" echo "EOF" } | { while true; do read -r i test "$i" = "EOF" && break f_sed "$i" done }
Merçi pour toutes aide
DIRECTORY="." # par exemple find $DIRECTORY -type f -name *.html -print | while read -r file ; do cp ${file} ${file}~ && sed -e '1,25d' < ${file}~ > ${file} done
find prend un répertoire!
commence par tronquer le fichier, alors { cmd <f >f } ne va rien lire.