-1

我正在这样做:

lastnames="test"
mode="04"
print $0 >> sprintf("%s\/%s_file_%s.txt",lastnames,lastnames,mode);

它说:fatal: can't redirect to `/_file_04.txt' (Permission denied)

但如果我这样做:

lastnames="test"
mode="04"
print $0 >> sprintf("test/%s_file_%s.txt",lastnames,mode);

这是工作。为什么是这样?我做错了什么,还是替换目录名有特殊情况?还是我必须逃跑%s/%s

我会感谢任何帮助..非常感谢

4

2 回答 2

1

这个对我有用。lastname检查变量声明 ( ) 和用法 ( )之间没有错字,lastnames并且目录存在,因为awk不会创建它。

一种解决方法可能是避免sprintf,如下所示:

awk ' {
    lastname="test"
    mode="04"
    print $0 >> lastname "/" lastname "_file_" mode ".txt"
} 
' infile
于 2012-08-07T07:55:56.073 回答
0

对不起,我很愚蠢,我在同一件事上循环了好几次,然后作为一个循环分裂了很多次,结果发生了这种情况:

split(name, lastnames, "") => [first, second]

然后第二个循环没有name字符串,因为它已经被分割了..因此,我指的是这样的东西:/file.txt因为之前的文件夹名称/是空的..

无论如何感谢您的意见..

于 2012-08-07T09:50:44.260 回答