Bash 将换行符回显到文件,除非是字符串的一部分

Bash echo newline to file unless part of string

我想将两个文件连接到第三个文件,但保留换行符。为此,我使用

FILE1=$(cat /path/file1)
FILE2=$(cat /path/file2)
FILE3="$FILE1 \n $FILE2"
echo -e $FILE3 > /path/to/file

但是,其中一个文件,我有一个 sed 操作,其中包含字符串 \n。当我创建第三个文件时,我不希望这个特定的 \n 字符构成换行符。

我能做什么?

我完全不知道你为什么要把文件内容塞进变量里。怎么了

cat /path/file1 /path/file2 > /path/to/file

如果您出于其他目的需要 FILE1 和 FILE2 变量,请避免使用 FILE3

echo "$FILE1
$FILE2" > /path/to/file

printf "%s\n" "$FILE1" "$FILE2" > /path/to/file

cat <<END_CONCAT > /path/to/file
$FILE1
$FILE2
END_CONCAT