파일에서 설명자 가져오기

파일에서 설명자 가져오기
#!/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>추가 단계를 수행해야 합니다.

관련 정보