分页: 1 / 1

请教一个关于cat参数中有带空格的路径加上引号却找不到该文件或目录的问题

发表于 : 2011-10-29 6:39
zsneoks
请教一个问题,就是cat参数中的路径带空格。
一般是在路径上加引号的。
我用find命令找了一些文本文件。然后用cat把这些文件打印到标准输出。命令行如下

代码: 全选

cat $(find .  -name aaa )
但是这样有一个问题,那就是如果有路径中出现空格就出问题了。于是我就想给它加上引号。我是用awk加上的引号。

代码: 全选

cat $(find . -name aaa|awk '{print "\""$0"\""}')
但是这样cat却提示说该文件或目录不存在。
请问这是怎么回事呢?cat对参数是怎么识别的啊?

Re: 请教一个关于cat参数中有带空格的路径加上引号却找不到该文件或目录的问题

发表于 : 2011-10-29 6:52
zsneoks
它提示找不到的那文件是带引号的文件路径。
而我手动去cat一下那个找不到的路径却是可以的。

Re: 请教一个关于cat参数中有带空格的路径加上引号却找不到该文件或目录的问题

发表于 : 2011-10-29 21:38
fnan
cat $(find . -name aaa|awk '{print "\""$0"\""}')
命令替换不对里面的引号再解释:

代码: 全选

eval cat $(find . -name aaa|awk '{print "\""$0"\""}')

Re: 请教一个关于cat参数中有带空格的路径加上引号却找不到该文件或目录的问题

发表于 : 2011-10-30 17:30
zsneoks
fnan 写了:
cat $(find . -name aaa|awk '{print "\""$0"\""}')
命令替换不对里面的引号再解释:

代码: 全选

eval cat $(find . -name aaa|awk '{print "\""$0"\""}')
貌似不是不解释的问题,加上eval仍然不管用。

Re: 请教一个关于cat参数中有带空格的路径加上引号却找不到该文件或目录的问题

发表于 : 2011-10-30 18:08
fnan
#无图无真相:
kose3@kose3-laptop:~/b$ ls
a b.t b c.t
kose3@kose3-laptop:~/b$ eval cat $(find . -name '*.t'|awk '{print "\""$0"\""}')
11
22
kose3@kose3-laptop:~/b$ cat $(find . -name '*.t'|awk '{print "\""$0"\""}')
cat: "./a: No such file or directory
cat: b.t": No such file or directory
cat: "./b: No such file or directory
cat: c.t": No such file or directory
kose3@kose3-laptop:~/b$

Re: 请教一个关于cat参数中有带空格的路径加上引号却找不到该文件或目录的问题

发表于 : 2011-11-01 3:03
zsneoks
fnan 写了:#无图无真相:
kose3@kose3-laptop:~/b$ ls
a b.t b c.t
kose3@kose3-laptop:~/b$ eval cat $(find . -name '*.t'|awk '{print "\""$0"\""}')
11
22
kose3@kose3-laptop:~/b$ cat $(find . -name '*.t'|awk '{print "\""$0"\""}')
cat: "./a: No such file or directory
cat: b.t": No such file or directory
cat: "./b: No such file or directory
cat: c.t": No such file or directory
kose3@kose3-laptop:~/b$
:em20 :em20 :em20
灵异了。果然行。
那天不行。
:em20 :em20 :em20