newline - 将输出存储在变量中时,echo 命令不保留 \n 字符 - bash shell 脚本
问题描述
当 echo 命令将数据存储在变量中时,我正在尝试检索换行符。有人可以帮帮我吗
当我运行 echo -e 时,它会提供命令行预期的输出
bash>testfile='INFO\nERROR\nWARNING'
bash> echo -e "$testfile"`
INFO
ERROR
WARNING
但是,当我尝试将输出存储在变量中时,我缺少换行符。
bash>testoutput=`echo -e "$testfile" | grep 'WARNING\|ERROR'`
bash>echo $testoutput
ERROR WARNING
感谢您的建议
解决方案
在 unix stackexchange 上查看这个答案。
看起来换行符在那里,echo
只是出于某种原因不想打印它们。printf
改为退房。
brundage@fatty ~ $ testfile='INFO\nERROR\nWARNING'
brundage@fatty ~ $ echo -e "$testfile"
INFO
ERROR
WARNING
brundage@fatty ~ $ testoutput=`echo -e "$testfile" | grep 'WARNING\|ERROR'`
brundage@fatty ~ $ printf "$testoutput\n"
ERROR
WARNING
推荐阅读
- sql - SQL - 如何检查所有可用日期是否存在数据?
- python - 如何从 url 下载 facebook 图片
- css - 如何使用css在不使用高度的情况下扩展宽度大小
- python-3.x - 从字典中设置类的属性
- python - 如何修复“UnicodeDecodeError: 'utf-8' codec can't decode byte 0xca”错误?
- c# - 在 Azure 函数中使用关联 ID 进行日志记录
- c - 如果子进程被阻塞怎么办,如何停止父进程?
- r - 替代将所有元素相互比较的 lapply?(R,ENMTools)
- ruby-on-rails - 将日期提前一个月到更短的月份时,如何提前到下个月的第一天?
- python - Jenkins 不在 python 脚本中运行 .exe