ファイルから記述子をインポートする

ファイルから記述子をインポートする
#!/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>手順を実行する必要があります。

関連情報