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

yh2wf1be  于 2023-10-18  发布在  Unix
关注(0)|答案(1)|浏览(147)

我试图在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个空格

qyyhg6bp

qyyhg6bp1#

尝试

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

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

相关问题