![파일에서 설명자 가져오기](https://linux55.com/image/168507/%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EC%84%A4%EB%AA%85%EC%9E%90%20%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0.png)
#!/bin/bash
space=' ';
for dir in ./*/*;
do
cd $dir
for line in 38 37 36 35 34 33 32 31 29
do
tail -n $line OUTCAR | head -n 1 |awk '{print $NF}'$space >> descriptor
echo '/t';
done
cd ../../
done
OUTCAR라는 문서가 존재하는 116개의 디렉토리가 있습니다.
OUTCAR마다 서로 다르며 OUTCAR의 총 행 수는 다를 수 있지만, 흥미롭게도 각 OUTCAR에서 얻고자 하는 숫자는 각 행의 맨 아래부터 끝까지 29~38번째 행에 나타납니다.
성공적으로 가져왔지만 설명자라는 새 문서에 나란히 인쇄할 수 없습니다.
위 코드를 검토하고 필요한 변경 사항을 제안해 주세요.
답변1
새 줄을 원하는 구분 기호로 바꾸십시오.
tail -n $line OUTCAR | head -n 1 |awk '{print $NF}'$space |tr '\n' '\t' >> descriptor`
tr '\n' '\t'
개행 문자를 탭으로 대체합니다.
echo '/t';
스크립트에서 삭제하세요.
답변2
시도해 보세요 - 루프 내부에서 -
tail -n 38 | awk 'NR > 10 {printf ORS; exit} NR != 9 {printf "%s\t", $NF}'
후행 문자를 허용할 수 없는 경우 <TAB>
추가 단계를 수행해야 합니다.