linux - 如何使用 awk 逐行打印其他程序的结果?

标签 linux bash awk

我有一个 file.txt 像:

AAAAAA
AAAAAB
AAAAAC
AAAAAD
...

而且我想同时为另一个程序使用一行。我的脚本正在使用 awk 并且它几乎完成但仍然无法正常工作。有人可以帮忙吗?谢谢!

while read file.txt

line=`awk '{ print $0 ; next}' ../file.txt`

echo 'for aa in "$line": cmd._alt(string.lower(aa)) ; save $line.pdb' > script.pdb

do

pymol script.pdb

done

脚本应该单独读取 file.txt 的每一行以使用 'for aa in "$line": cmd._alt(string.lower(aa)) 中的行;为 pymol 保存 $line.pdb' 脚本。

所以预期的输出应该是一个包含所有文件的文件夹:

AAAAAA.pdb AAAAAB.pdb AAAAAC.pdb

最佳答案

你可以试试

while read -r line
do
    echo "for aa in \"$line\": cmd._alt(string.lower(aa)) ; save $line.pdb" > script.pdb
    pymol script.pdb
done < file.txt

关于linux - 如何使用 awk 逐行打印其他程序的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33304549/

相关文章:

linux - 覆盖两个 postscript 文件(命令行方法)?

python - bash 中的 python 参数中的变量为空?

bash - 根据 shell 参数规则将字符串拆分为标记,无需 eval

java - 转换为PDF/A并检查Linux下的合规性

c - Linux 核心中的通用堆栈实现

c - 导出时未创建 Linux GPIO 值文件

linux - 如何在python中编写一个可以打开一个新的linux终端并自动执行源代码的脚本

regex - 使用 awk 根据单词求和数字

git - 如何创建自定义 git/bash 脚本?

bash - awk 比较两个文件 - 从第一个文件的条件中删除第二个文件的行