Printf 命令在行中添加额外的空格

问题描述 投票:0回答:1

我正在尝试在 unix 脚本中创建 hdr 记录。我正在使用 printf 函数来填充。 printf 语句在该行中添加了 2 个空格。

我正在使用下面的代码

 REC_TYP="1"
 SYS_ID="AN"    #CR119
 SYS_FILE_NBR="03"
 DT_STAMP=`date +%Y%m%d`
 DT_STAMP=$(echo "$DT_STAMP" | tr -s " ")
 TI_STAMP=`date +%T`
 TI_STAMP1=$(echo "$TI_STAMP" | sed 's/://g')
 FILE_TXT="abc_FILE"
 echo "Date value:"$DT_STAMP
 echo "Timestamp:"$TI_STAMP1
 printf '%s%1s%2s%2s%8s%6s\n' $REC_TYP $SYS_ID $SYS_FILE_NBR $DT_STAMP $TI_STAMP1 #$FILE_TXT

我期待如下的输出

 1AN0320230822024946abc_FILE

但我得到如下输出

 1AN0320230822  024946abc_FILE

任何人都可以帮我在上面的代码中添加 2 个空格吗

unix unix-timestamp
1个回答
0
投票

尝试

printf '%s%2s%2s%2s%6s%6s\n' "$REC_TYP" "$SYS_ID" "$SYS_FILE_NBR" "$DT_STAMP" "$TI_STAMP1" "$FILE_TXT"

我猜你的宽度错误,不要忘记引号。

© www.soinside.com 2019 - 2024. All rights reserved.