我尝试将更改保存在awk中,我有类似的文件
Eq6_1.ndx
eq6_2.ndx
...
...
eq6_10.ndx
这样就可以了
for index in {1..10}
do
awk 'f;/hbonds_Other-SOL/{f=1}' eq6_$index.ndx | tee eq7_$index.ndx
done
但是我想将更改保存在同一文件中,所以我尝试
for index in {1..10}
do
awk 'f;/hbonds_Other-SOL/{f=1}' "eq6_$index.ndx" > "$tmp" && mv "$tmp" "eq6_$index.ndx"
done
但我知道没有这样的文件最后我想尝试一下
#!/bin/bash
name="eq6"
for index in {1..10}
do
awk 'f;/hbonds_Other-SOL/{f=1}' "${name}_$index.ndx" > "$tmp" && mv "$tmp" "{$name}_$index.ndx"
done
但是我知道没有这样的文件吗?我做错了什么我尝试了此解决方案,但如何使用awk命令将查找输出写入同一文件却不起作用
tmp
是一个变量,您必须先将其实际设置为文件名,然后才能尝试使用来访问该文件$tmp
:
tmp=$(mktemp) || exit 1
name='eq6'
for index in {1..10}
do
awk 'f;/hbonds_Other-SOL/{f=1}' "${name}_$index.ndx" > "$tmp" && mv "$tmp" "${name}_$index.ndx"
done
您也有{$name}
,${name}
但我认为那是一个错字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句