In Bash, kann ich den cat
Teil (und die Gabel es bringt) irgendwie in der folgenden Befehlszeile loswerden?Kann ich stdin direkt in Datei umleiten?
cat >some_file
In Bash, kann ich den cat
Teil (und die Gabel es bringt) irgendwie in der folgenden Befehlszeile loswerden?Kann ich stdin direkt in Datei umleiten?
cat >some_file
Verwendung prozess Substitution in bash
, zu vermeiden useless-use-of-cat
> file
while IFS= read -r line
do
printf "%s\n" "$line"
done </dev/stdin>> file
Um Form stdin
und hängt an die file
auf der Flucht zu lesen, kürzt > file
den Inhalt der Datei, bevor Sie beginnt zu lesen.
Einschließlich dieser Vorschlag von Leon's comment für eine Option einzeilige, dies zu tun,
while IFS= read -r line; do echo "$line"; done > file
nur bash-Tools zu verwenden, können Sie tun:
printf '%s' "$(< infile)"
Aber beides:
Deshalb ist Katze als Werkzeug vorhanden.
Das gleiche kann wie folgt geschrieben werden: 'while read -r line; echo "$ line"; done> file' – Leon
Beachten Sie, dass diese Lösung anders als "cat" ist - wenn die Eingabe nicht mit einem Newline-Zeichen endet, wird die letzte Zeile gelöscht – Leon
Fügen Sie ein 'IFS =' zum 'read' hinzu um zu vermeiden, dass führende und nachfolgende Leerzeichen aus '$ line' entfernt werden. –