
#!/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>
手順を実行する必要があります。