最初の行にある文字列を含めるようにファイル名を変更する必要があります。
前任者:
[acoder@test]# head -1 FILE001.DAT
XYZ123
私の推測は次のとおりです。
for file in /some/dir/*.DAT
do
CODE=`head -1 "$file"`
echo "${file%.DAT}.$CODE.DAT"
done
出力:
.DATa/some/dir/FILE001.XYZ123
以下を見ることができると予想されます。
/some/dir/FILE001.XYZ123.DAT
何が間違っていますか?
答え1
ファイルがWindowsシステム上のファイルの場合は、末尾にキャリッジリターン文字がある可能性があります。
CODE
次のように変数に割り当てることで、この問題を解決できます。
CODE="$( head -n 1 "$file" | tr -d '\r' )"