Bash 错误消息";日期:参数列表太长“;猛击

Bash 错误消息";日期:参数列表太长“;猛击,bash,Bash,所以,代码中的一切都很好,除了一件小事 本部分: if [ "$LIMITHOURS" -gt "0" -a "$LIMITHOURS" -lt "24" ]; then x=$(($LIMITHOURS*60*60)) fi SDATE=$( echo "01/jan/2003:11:00:06 +0100"| sed 's/[/]/ /g' |sed 's/:/ /') EDATE=$(date --date "$SDATE - $x seconds" +"%d%m%Y%H%M%S"

所以,代码中的一切都很好,除了一件小事

本部分:

if [ "$LIMITHOURS" -gt "0" -a "$LIMITHOURS" -lt "24" ]; then
    x=$(($LIMITHOURS*60*60))
fi
SDATE=$( echo "01/jan/2003:11:00:06 +0100"| sed 's/[/]/ /g' |sed 's/:/ /')
EDATE=$(date --date "$SDATE - $x seconds" +"%d%m%Y%H%M%S")

#echo "$SDATE"
#echo "$EDATE"


while read LINE; do
CDATE=$( awk '{print $4}'| sed 's/[[]//' | sed 's/[/]//g' |sed 's/://g' ) 
DATE=$(date --date "$CDATE" +"%d%m%Y%H%M%S")

#echo "$CDATE"
done < "$FILENAME"
if[“$LIMITHOURS”-gt“0”-a“$LIMITHOURS”-lt“24”];然后
x=$($LIMITHOURS*60*60))
fi
SDATE=$(echo“01/jan/2003:11:00:06+0100”| sed's/[/////g'| sed's/://'))
EDATE=$(日期--日期“$SDATE-$x秒”+%d%m%Y%H%m%S)
#回声“$SDATE”
#echo“$EDATE”
读行时;做
CDATE=$(awk'{print$4}'| sed's/[[]/'| sed's/[]////g'| sed's/:///g')
日期=$(日期--日期“$CDATE”+%d%m%Y%H%m%S)
#echo“$CDATE”
完成<“$FILENAME”
当我尝试运行脚本时,会收到错误消息“日期:参数列表太长” “我知道问题出在while循环中,包括:

日期=$(日期--日期“$CDATE”+%d%m%Y%H%m%S)

有谁知道这方面的解决方案吗?我想要DDMMYYHYHMMSS中的日期格式,例如23102002120022

您可以在此处找到脚本的其余部分:

此代码:

while read LINE; do
CDATE=$( awk '{print $4}'| sed 's/[[]//' | sed 's/[/]//g' |sed 's/://g' ) 
DATE=$(date --date "$CDATE" +"%d%m%Y%H%M%S")

#echo "$CDATE"
done < "$FILENAME"
但是,从
中去除不需要的字符的更简单方法是

CDATE=${LINE//[\/[:]}

@TomFenech,这有关系吗?argv+envp大小限制并不完全是版本特定的问题。
CDATE=${LINE//[\/[:]}