Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux bash脚本输出文件名中的奇怪符号_Linux_Bash_Rename_Filenames_Symbols - Fatal编程技术网

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

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

我有一个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  
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…