#1 Le 25/12/2013, à 15:38
- sergeG75018
saut de ligne dans le nom de fichier creé par un script
bonjour.
Je crais un petit script nautilus qui me permet de modifier un fichier texte et qui est enregistré dans un nouveau fichier texte qui reprend le nom du premier fichier auquel j'ajoute une extension.
jusque là ça va.
fichier=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
cat $fichier | sed '/^$/d'| sed 's/.*/\L&/' | sort | sed '$!N; /^\(.*\)\n\1$/!P; D' > "$fichier.txt"
Le problème est que le fichier de sortie comporte un saut de ligne.
Et là je ne sais pas du tout quoi faire pour l'éviter.
Une petite idée, piste serais la bien venue.
merci d'avance
Ironie, sarcasme ou cynisme? Je ne sais plus
Hors ligne
#2 Le 25/12/2013, à 17:34
- pingouinux
Re : saut de ligne dans le nom de fichier creé par un script
Bonjour,
Peux-tu donner un exemple de ce que tu veux ? Est-ce le nom du fichier qui contient un saut de ligne, ou son contenu ?
Hors ligne
#3 Le 25/12/2013, à 17:58
- sergeG75018
Re : saut de ligne dans le nom de fichier creé par un script
bonjour
C'est le nom du fichier qui contient un saut de ligne (quand tu appuis sur "entrée" dans un éditeur de texte.
merci
Ironie, sarcasme ou cynisme? Je ne sais plus
Hors ligne
#4 Le 25/12/2013, à 18:08
- pingouinux
Re : saut de ligne dans le nom de fichier creé par un script
Pour simplement copier le fichier
cp "$fichier" "$fichier.ext"
Pour y appliquer un traitement
cat "$fichier" | ..... >"$fichier.ext"
Hors ligne
#5 Le 25/12/2013, à 18:27
- sergeG75018
Re : saut de ligne dans le nom de fichier creé par un script
le cp ne fonctionne pas le saut de ligne apparait dans le terminal
serge@serge-Latitude-D610:~/Documents/scripts/sed$ fichier=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
serge@serge-Latitude-D610:~/Documents/scripts/sed$ cp "$fichier" "$fichier.tex"
cp: impossible d'évaluer «/home/serge/Documents/scripts/sed/test\n»: Aucun fichier ou dossier de ce type
Ironie, sarcasme ou cynisme? Je ne sais plus
Hors ligne
#6 Le 25/12/2013, à 18:33
- pingouinux
Re : saut de ligne dans le nom de fichier creé par un script
Il faut commencer par
fichier="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
Hors ligne
#7 Le 25/12/2013, à 18:38
- sergeG75018
Re : saut de ligne dans le nom de fichier creé par un script
J'ai déja testé les double cote, et le résultat est le même
serge@serge-Latitude-D610:~/Documents/scripts/sed$ fichier="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
serge@serge-Latitude-D610:~/Documents/scripts/sed$
serge@serge-Latitude-D610:~/Documents/scripts/sed$ cp "$fichier" "$fichier.tex"
cp: impossible d'évaluer «/home/serge/Documents/scripts/sed/test\n»: Aucun fichier ou dossier de ce type
Ironie, sarcasme ou cynisme? Je ne sais plus
Hors ligne
#8 Le 25/12/2013, à 18:40
- sergeG75018
Re : saut de ligne dans le nom de fichier creé par un script
alors que si je fait un echo le résultat est bon
serge@serge-Latitude-D610:~/Documents/scripts/sed$ echo $fichier
/home/serge/Documents/scripts/sed/test
Ironie, sarcasme ou cynisme? Je ne sais plus
Hors ligne
#9 Le 25/12/2013, à 19:10
- pingouinux
Re : saut de ligne dans le nom de fichier creé par un script
Ce n'est pas le nom du fichier qui contient un '\n', mais le nom du fichier est suivi d'un '\n' dans NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
Essaye
fichier=$(awk '{print}' <<<"$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
Hors ligne
#10 Le 25/12/2013, à 19:27
- sergeG75018
Re : saut de ligne dans le nom de fichier creé par un script
alors là...
bravo
j'avais plus ou moins compris que bash travaillait ligne part ligne et créait donc une ligne \n a chaque sortie courante mais je n'avais pas la moindre idée de comment faire.
je regarderais ça de plus près dès que j'ai le temps.
mille mercis
Ironie, sarcasme ou cynisme? Je ne sais plus
Hors ligne
#11 Le 25/12/2013, à 19:31
- pingouinux
Re : saut de ligne dans le nom de fichier creé par un script
D'ailleurs, cela suffit
fichier=$(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
Hors ligne