bash shell中awk遍历文件遇到的问题

qq_20620319 北京基因组所 2020-02-27 09:19:21
我想用awk处理文件夹下所有.fasta结尾的文件文本并重定向到单独的文件。用到的代码如下:

for file in 'ls -1 *.fasta'
do
awk '...' $file > ${file}.plat.cds
done


结果出现报错:
-bash: ${file}.plat.cds: ambiguous redirect
于是我试着把输出文件改为all.plat.cds:

for file in 'ls -1 *.fasta'
do
awk '...' $file > all.plat.cds
done

依旧报错:
awk: fatal: cannot open file `ls' for reading (No such file or directory)
为什么直接把ls作为变量读取了?
...全文
71 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yolyry 2020-02-27
awk "{print $1}" `ls *.fasta`
采用这种形式应该能实现你需要的效果,不过要注意的一点我认为你可能需要的是追加重定向>>,每次都用>重写了,感觉意义也不大~~~
回复
yolyry 2020-02-27
因为你用的是单引号,所见即所得;你用TAB键上面的反引号试试吧,不知道你具体需要实现的效果

但根据你最初需求,我感觉直接用管道可以实现啊,为啥要搞的这么麻烦?还用for循环?
回复
qq_20620319 2020-02-27
有人吗,求大神
回复
发动态
发帖子
Linux/Unix社区
创建于2007-08-27

1.8w+

社区成员

Linux/Unix社区 专题技术讨论区
申请成为版主
社区公告
暂无公告