我目前正在编写一个 shell 脚本,有时错误可能会输出到文件中,但我需要移动错误,因为它没有任何意义,只要错误不存在,一切都会正常工作。
我有一个脚本,它具有以下内容:
ftp ftp://$2:$3@$1 << BLOCK > $5
cd "$4"
ls
quit
BLOCK
$5 是写入 FTP 命令输出的文件。所以在文件中我有以下内容
total 8
-rw-r--r-- 1 root root 42 Dec 17 14:26 test1.txt
-rw-r--r-- 1 root root 6 Dec 17 14:08 test2.txt
有时我会收到错误?Invalid command.
,所以我使用sed
它从文件中删除错误。我已将 shell 脚本更改为以下内容。我error
在 FTP 中放置了测试注意事项,以确保我收到上述错误消息。
ftp ftp://$2:$3@$1 << BLOCK > $5
cd "$4"
ls
error
quit
BLOCK
fileout=$(sed '/?Invalid command./d' $5)
echo $fileout > $5
从某种意义上说,这是有效的,因为我正在删除错误消息,但它也删除了换行符,因此当我查看文件时,我得到以下信息
total 8 -rw-r--r-- 1 root root 42 Dec 17 14:26 test1.txt -rw-r--r-- 1 root root 6 Dec 17 14:08 test2.txt
如何保留换行符?
感谢您的任何帮助,您可以提供。