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] 삭제
몇 마디 만하겠습니다