Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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
在BASH中将DOS文件内容用作命令行参数_Bash_Scripting - Fatal编程技术网

在BASH中将DOS文件内容用作命令行参数

在BASH中将DOS文件内容用作命令行参数,bash,scripting,Bash,Scripting,这是对这一问题的后续行动 如何修改代码,以便在将DOS创建的文件传递给xargs之前,将其恼人的CRLF剥离掉 示例文件“arglist.dos” # cat > arglist.unix src/file1 dst/file1 src/file2 dst/file2 src/file3 dst/file3 ^c # sed 's/$/\r/' arglist.unix > arglist.dos 该文件的unix变体适用于以下情况: $ xargs -n2 < arglis

这是对这一问题的后续行动

如何修改代码,以便在将DOS创建的文件传递给xargs之前,将其恼人的CRLF剥离掉

示例文件“arglist.dos”

# cat > arglist.unix
src/file1 dst/file1
src/file2 dst/file2
src/file3 dst/file3
^c
# sed 's/$/\r/' arglist.unix > arglist.dos
该文件的unix变体适用于以下情况:

$ xargs -n2 < arglist.unix echo cp
cp src/file1 dst/file1
cp src/file2 dst/file2
cp src/file3 dst/file3
$xargs-n2

对于我自己的教育,如何将其更改为在同一命令行上接受“arglist.unix”或“arglist.dos”文件?

在将文件传递给xargs之前,使用d2u删除CR

cat arglist.dos | tr -d "\r" | xargs -n2 echo cp
提供与相同的结果

cat arglist.unix | tr -d "\r" | xargs -n2 echo cp
所以它对两个文件都有效


tr-d“\r”
删除所有CR字符

不同的名称;相同的功能。我更喜欢在同一个命令行上执行此操作,
d2u
/
dos2unix
是否支持此功能?与许多unix命令一样,当在没有参数的情况下调用时,dos2unix在stdin和stdout上运行。谢谢。我想我想要的是对