Linux bash脚本输出文件名中的奇怪符号
我有一个bash脚本,它接受一个文本文件'power_coords.txt',其中包含115行数据,每行中有四列(以空格分隔),其中包含x、y、z坐标(前3列)和一个名称(第4列)。例如:Linux bash脚本输出文件名中的奇怪符号,linux,bash,rename,filenames,symbols,Linux,Bash,Rename,Filenames,Symbols,我有一个bash脚本,它接受一个文本文件'power_coords.txt',其中包含115行数据,每行中有四列(以空格分隔),其中包含x、y、z坐标(前3列)和一个名称(第4列)。例如: 36 54 19 cotc1 45 13 -27 cotc2 1 -6 14 cotc3 .... 我的脚本运行以下代码行,以便在文本文件的每一行上运行操作: #!/bin/bash input="power_coords.txt" while IFS=" " read x y z name do
36 54 19 cotc1
45 13 -27 cotc2
1 -6 14 cotc3
....
我的脚本运行以下代码行,以便在文本文件的每一行上运行操作:
#!/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"
#/bin/bash
input=“power\u coords.txt”
而IFS=”“读取x y z名称
做
fslmaths avg152T1.nii.gz-mul 0-add 1-roi$x 1$y 1$z 1 0 1$name-odt浮动
完成<“$input”
这看起来很好,但是当我运行代码时,在创建的每个文件名中都会出现一个奇怪的符号:
有人知道为什么会发生这种情况以及如何修复吗?还是在脚本运行后用一种简单的方法清理文件名(即删除看起来像乐高积木的部分)
干杯屏幕截图上的小正方形写着“000D”,所以它只是一个小方框 首先,我建议只需打印变量
$name
,即可检查变量中的内容:
while IFS=" " read x y z name
do
echo "aaa${name}bbb"
done < "$input"
而IFS=”“读取x y z名称
做
回显“aaa${name}bbb”
完成<“$input”
aaa
和bbb
可以更容易地查看输出
它还有助于检查在power\u coords.txt
中使用的字符。您可以通过将路径传递到。它应该打印出文件中使用的“行终止符”
在弄清楚读入
$name
的内容后,您可以在power\u coords.txt
中转换换行符,或者调整IFS
以允许CR也被视为分隔符。屏幕截图中的小正方形显示“000D”,因此它只是一个分隔符
首先,我建议只需打印变量$name
,即可检查变量中的内容:
while IFS=" " read x y z name
do
echo "aaa${name}bbb"
done < "$input"
而IFS=”“读取x y z名称
做
回显“aaa${name}bbb”
完成<“$input”
aaa
和bbb
可以更容易地查看输出
它还有助于检查在power\u coords.txt
中使用的字符。您可以通过将路径传递到。它应该打印出文件中使用的“行终止符”
在弄清读入
$name
的内容后,您可以在power\u coords.txt
中转换换行符,或者调整IFS
以允许CR也被视为分隔符。Oh ok-有没有办法在创建文件时禁止包含该分隔符?@thefloatingkudu您可以获得read
以将CR作为空白进行修剪,而IFS=$'\r'read…
Oh ok-有没有办法在创建文件时禁止包含该分隔符创建?@thefloatingkudu您可以获得read
,在IFS=$'\r'read…