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
..
..
下面是创建目录的步骤

  • 需要获取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/abc/test/
    
    Output : 
    N?
    
    Expected Output : 
    N
    

    您能否建议如何解决此问题。

    inputfile.txt
    可能有DOS行结尾(CR/LF);将其转换为Unix行结尾(仅限LF)。
    是DOS对的回车。@user148267:或者,更一般地(比切普纳的建议)用
    xxd
    查看输入文件,查看换行符之前有哪些字节。用
    dos2unix
    sed-i's/\r$/'
    修复输入文件