Shell没有这样的文件或目录

  • 本文关键字:文件 Shell linux shell
  • 更新时间 :
  • 英文 :


在shell中运行for循环时遇到了一个问题。

for i in `cat $file`
do
`cut -d ',' -f 2- $i`
done

我试图从第二列中剪切行并输出它们,但它给了我一个错误:(文件的内容(没有这样的文件或目录

首先,尝试执行cut命令的输出。

考虑:

$ echo hello >file
$ cat file
hello
$ a=`cat file`
$ echo "$a"
hello
$ `echo "$a"`
-bash: hello: not found
$

也许您只是想显示cut:的输出

for i in `cat "$file"`
do
cut -d , -f 2- $i
done

其次,向cut传递一个参数,该参数应为文件名。

您从$file读取数据并将其用作文件名。这些数据实际上是文件名吗?

考虑:

$ echo a,b,c,d >file
$ cat file
a,b,c,d
$ a=`cat file`
$ echo "$a"
a,b,c,d
$ cut -d , -f 2- file
b,c,d
$ cut -d , -f 2- "$a"
cut: a,b,c,d: No such file or directory

也许你想要:

cut -d , -f 2- "$file"

第三,for循环将"$file"中的数据拆分为空白,而不是逐行拆分。

考虑:

$ echo 'a   b,c d' >file
$ cat file
a   b,c d
$ for i in `cat file`; do echo "[$i]"; done
[a]
[b,c]
[d]
$

也许你想读单独的一行?

while read i; do
: ...
done <file

相关内容

  • 没有找到相关文章

最新更新