我需要重命名文件以包含在第一行中找到的字符串。
前任:
[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' )"