Comment pouvons-nous ajouter du texte dans un fichier via une commande d'une ligne sans utiliser la redirection io?
Si cela ne vous dérange pas d'utiliser sed alors,
$ test cat il s’agit de la ligne 1 $ sed -i '$ a\ceci est la ligne 2 sans test de redirection' $ test cat. ceci est la ligne 1 ceci est la ligne 2 sans redirection
Comme la documentation peut être un peu longue à parcourir, quelques explications:
-i
signifie une transformation in-situ, ainsi tous les changements se produiront dans le fichier que vous spécifiez$
est utilisé pour spécifier la dernière lignea
signifie ajouter une ligne après\
est simplement utilisé comme délimiteurSi vous voulez juste taper quelque chose à la main, la réponse sed
fonctionnera pour vous. Si au lieu de cela le texte est dans fichier (s) (par exemple, fichier1.txt et fichier2.txt):
Utiliser Perl:
Perl -e 'open(OUT, ">>", "outfile.txt"); print OUT while (<>);' file*.txt
N.B. tandis que le >>
peut ressembler à une indication de redirection, il s’agit simplement du mode d’ouverture de fichier, dans ce cas "append".
Vous pouvez utiliser Vim en mode Ex:
ex -sc 'a|BRAVO' -cx file
a
ajouter du texte
x
enregistrer et fermer
Vous pouvez utiliser le --append
caractéristique de tee
:
cat file01.txt | tee --append bothFiles.txt
cat file02.txt | tee --append bothFiles.txt
Ou plus court,
cat file01.txt file02.txt | tee --append bothFiles.txt
Je suppose que la demande de non-redirection (>>
) provient de la nécessité de l'utiliser dans xargs
ou similaire. Donc, si cela ne compte pas, vous pouvez couper la sortie avec >/dev/null
.