首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >bash脚本的输出文件名中有奇怪的符号

bash脚本的输出文件名中有奇怪的符号
EN

Stack Overflow用户
提问于 2020-04-08 02:09:41
回答 1查看 173关注 0票数 1

我有一个bash脚本,它接受一个包含115行数据的文本文件'power_coords.txt‘,在每一行中有四个(空格分隔)列,其中包含x,y,z坐标(前3个cols)和一个名称(第4个col)。示例:

代码语言:javascript
运行
复制
36 54 19 cotc1
45 13 -27 cotc2
1 -6 14 cotc3
....

我的脚本运行以下代码行,在文本文件的每一行上运行一个操作:

代码语言:javascript
运行
复制
#!/bin/bash
input="power_coords.txt"  
while IFS=" " read x y z name
do  
fslmaths avg152T1.nii.gz -mul 0 -add 1 -roi $x 1 $y 1 $z 1 0 1 $name -odt float
done < "$input"

这似乎工作得很好,但是当我运行代码时,我在创建的每个文件名中都得到了一个奇怪的符号:

有人知道为什么会发生这种情况以及如何修复吗?或者是一种在脚本运行后清理文件名的简单方法(例如,删除看起来像乐高的部分)?

干杯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-08 02:14:44

屏幕截图中的小方块写着"000D",所以它只是一个CR newline symbol

首先,我建议通过打印变量$name来检查它的内容:

代码语言:javascript
运行
复制
while IFS=" " read x y z name
do  
  echo "aaa${name}bbb"
done < "$input"

使用aaabbb可以更轻松地查看输出。

它还有助于检查power_coords.txt中使用了什么字符。您可以通过将path传递给utility file来检查它。它应该打印出文件中使用了哪个“行终止符”。

在弄清楚读入$name的内容之后,您可以在power_coords.txt中转换换行符,或者调整IFS以允许将CR视为分隔符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61086593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档