Ecrire dans un fichier en ligne de commande

Statut
N'est pas ouverte pour d'autres réponses.

Gh0$T

Elite
Bonjour tout le monde.


voilà je dois écrire dans un fichier plusieur ligne avec une syntaxe bien particulière mais je ne peux faire cela qu'avec une ligne de commande.


J'avais essayer ceci

Code:
FILENAME=`date +%Y-%m-%d-%H-%M`.sms &&  echo "To: 32XXXXXXXX" > /var/spool/sms/outgoing/$FILENAME && echo "" >> /var/spool/sms/outgoin/$FILENAME && echo "hello world" >> /var/spool/sms/outgoing/$FILENAME
Mais le système des >> ne fonctionne pas car pour lui le fichier n'existe pas.

La premire ligne doit contenir "To: 3313131313131"
La seconde ligne ""
La troisème "du blabla"

Merci.
 
G

grosnours

ex membre
T'as une distrib anormale, >> vers un fichier qui n'existe pas revient à > .

Change de distrib ou mieux: man echo.
[...]
-e enable interpretation of backslash escapes
[...]
If -e is in effect, the following sequences are recognized:

\0NNN the character whose ASCII code is NNN (octal)

\\ backslash

\a alert (BEL)

\b backspace

\c suppress trailing newline

\f form feed

\n new line

\r carriage return

\t horizontal tab

\v vertical tab
[...]
FILENAME=`date +"%F-%T" | tr ':' '-'`.sms && echo -e "To: number\n\nhello world" > $FILENAME
 

becket

Elite
awk ' { if ( NR == 1 ) print "ligne 1\nligne 2 \nligne 3" $0 ; else print $0 } ' $FILENAME > $FILENAME.OUT
 
1er
OP
Gh0$T

Gh0$T

Elite
oki, merci grosnours, ça fonctionne.
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut