将echo命令与-n选项一起使用不会显示变量

时间:2019-09-19 16:07:05

标签: bash echo

我正在从文件中提取字符串变量,然后将其打印到屏幕上。问题是仅使用echo可以工作,但是如果我使用echo -n,则什么也不会打印。这是一个示例:

$ Var=$(grep -a MrEdbType FileName)
$ echo $Var
Prot
$ echo -n $Var
$ 

类似地,如果我使用printf,则仅当我添加\n时它才有效:

$ Var=$(grep -a MrEdbType FileName)
$ printf "%s" $Var
$
$ printf "%s\n" $Var
Prot

我提取的字符串有什么问题?该文件是一个DICOM文件,包含文本和二进制数据的混合,因此使用-a选项。

如评论中所建议,使用hexdump -C选项生成以下结果:

$ Var=$(grep -a MrEdbType FileName | hexdump -C)
$ echo $Var
00000000 50 72 6f 74 0d 0a |Prot..| 00000006

1 个答案:

答案 0 :(得分:0)

通过建议的链接可以找到答案-在sed 's/\r$//'搜索的末尾使用grep解决了该问题!