【发布时间】:2022-01-06 10:44:58
【问题描述】:
在 shell 中,我浏览了几个文件以重新格式化它们,因此我生成了一个带有文件名 + .cpy 扩展名的输出。
例如,我有 test.des.utf8 生成到 test.des.utf8.cpy,我想做的是从 test.des.utf8 转到 TEST.cpy。
我尝试了类似的方法,但它对我不起作用:
"$f" "${f%.txt}.text"
这是我的输出重定向的外壳:
for f in $SOURCE_DIRECTORY
do
b=$(basename "$f")
echo "Generating $f file in copy..";
awk -F ';' '
$1=="TABLE" && $3==" " {
printf "01 %s.\n\n", $2;
next
}
{
result = $2
if ($2 ~ /^Numérique [0-9]+(\.[0-9]+)?$/) {
nr=split($2,a,"[ .]")
result = "PIC 9(" a[2] ")"
if (nr == 3) {
result = result ".v9(" a[3] ")"
}
}
sub(/CHAR/,"PIC X", result);
printf " * %s.\n\n 05 %s %s.\n\n", $3, $1, result;
}' "$f" > "$TARGET_DIRECTORY/$b.cpy"
done
【问题讨论】:
-
f='test.des.utf8'; nf="${f%%.*}"; nf="${nf@U}.cpy"; echo "$nf"