Shell 从文件中获取值时删除特殊字符
动态创建目录时,将使用附加的垃圾字符创建值,如?Shell 从文件中获取值时删除特殊字符,shell,Shell,动态创建目录时,将使用附加的垃圾字符创建值,如? inputfile.txt a=B f=G M=N o=Z .. .. 下面是创建目录的步骤 需要获取M的值并在/user/home/abc/test/中创建一个目录 我试过的命令: var1=cat input_file.txt | grep M | cut-d“=”-f2 mkdir-p/user/home/abc/test/${var1} 它创建目录,但输出具有如下所示的垃圾值 Command : ls -ltr /user/home/
inputfile.txt
a=B
f=G
M=N
o=Z
..
..
下面是创建目录的步骤
cat input_file.txt | grep M | cut-d“=”-f2
mkdir-p/user/home/abc/test/${var1}
Command :
ls -ltr /user/home/abc/test/
Output :
N?
Expected Output :
N
您能否建议如何解决此问题。
inputfile.txt
可能有DOS行结尾(CR/LF);将其转换为Unix行结尾(仅限LF)。?
是DOS对的回车。@user148267:或者,更一般地(比切普纳的建议)用xxd
查看输入文件,查看换行符之前有哪些字节。用dos2unix
或sed-i's/\r$/'
修复输入文件