Ano*_*ist 1 variables bash replace
美好的一天,
我想知道为什么我收到此错误:
$ DEPARTAMENTO="San Andrés" ; mv `grep "${DEPARTAMENTO:0:5}" ARCHIVOS2MOVER | sed 's/ /\\ /g'` "$DEPARTAMENTO" ; echo "$DEPARTAMENTO"
mv: cannot stat `./P1/San': No such file or directory
mv: cannot stat `A_P1': No such file or directory
mv: cannot stat `./P2/San': No such file or directory
mv: cannot stat `A_P2': No such file or directory
San Andrés
Run Code Online (Sandbox Code Playgroud)
这是"ARCHIVOS2MOVER"文件的一部分
./Norte de Santander/Norte_P2
./P1/San A_P1
./P1/Total_P1
./P2/San A_P2
./P2/Total_P2
./Putumayo/Putum_P1
Run Code Online (Sandbox Code Playgroud)
非常感谢你给我一个线索
你不能逃避这样的空间,并让shell以你想要的方式对转义的文件名进行操作.但你也不需要这样做.这就是工具之类的东西xargs.
尝试类似的东西:
grep "${DEPARTAMENTO:0:5}" ARCHIVOS2MOVER | xargs -d '\n' mv -t "$DEPARTAMENTO"
Run Code Online (Sandbox Code Playgroud)
并不是说我认为这是最好的方法,但考虑到给定的数据,它会起作用.
最好用和遍历文件的行,read然后逐行进行匹配,mv如果匹配则每个进行匹配.虽然我想也可以使用许多其他选项,具体取决于数据源的确切含义.
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |