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作为变量读取了?
...全文
337 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yolyry 2020-02-27
  • 打赏
  • 举报
回复
awk "{print $1}" `ls *.fasta`
采用这种形式应该能实现你需要的效果,不过要注意的一点我认为你可能需要的是追加重定向>>,每次都用>重写了,感觉意义也不大~~~
yolyry 2020-02-27
  • 打赏
  • 举报
回复
因为你用的是单引号,所见即所得;你用TAB键上面的反引号试试吧,不知道你具体需要实现的效果

但根据你最初需求,我感觉直接用管道可以实现啊,为啥要搞的这么麻烦?还用for循环?
qq_20620319 2020-02-27
  • 打赏
  • 举报
回复
有人吗,求大神

18,829

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧