我有一个 bash 脚本。如果我运行此命令:
- grep 某些模式,
- 变换输出,
- 对输出进行排序
- 对输出进行重复数据删除
然后我在终端中每行得到一个 grep find
LC_ALL=C grep -o --color -h -E -C 0 -r "$pattern" /pathto/Pre_N/ | tr -d '[:digit:]' | sort | uniq
但是,如果我将其放入输出变量中,则格式会丢失(在回显到文件或在屏幕上回显时)。
#!/usr/bin/env bash
output=$(LC_ALL=C grep -o --color -h -E -C 0 -r "$pattern" /pathto/Pre_N/ | tr -d '[:digit:]' | sort | uniq)
echo $output > $fn
将命令保存到变量后,如何保留该命令输出的格式?
答案1
使用引号:
echo "$output" > $fn
echo 行由 shell 解析(在变量扩展之后),并且参数之间的所有空格字符都被简化为一个简单的空格。例如:
$ var1="toto
> titi
> tutu
> "
$ echo $var1
toto titi tutu
$ echo "$var1"
toto
titi
tutu