我可以运行:
awk -v DATE="$(date +"%d%m%Y")" 'BEGIN{print DATE }1''1; END{print "EOF"NR-1}' Assgmt_B1_v1_16032017.CSV > NoticesPrinting_v1_farah.csv
但参数化后,我再也无法跑了......请帮助我。
Today_Date=`date +"%d%m%Y"`
Current_Date=`date +"%d%m%Y"`
awk -v DATE="${Today_Date}" path="${Target_Dir}"'BEGIN{print DATE};END{print "EOF"NR-1}' "${Source_Dir}/${log}" > file= path ""NoticesPrinting_v1".csv"
输入:
Header 1|Header 2|Header 3
10000001|10000002|10000003
输出:
17032017
Header 1|Header 2|Header 3
10000001|10000002|10000003
EOF1
答案 0 :(得分:3)
您的情况下语法错误
awk -v DATE="$(date +"%d%m%Y")" 'BEGIN{print DATE }1''1; END{print "EOF"NR-1}' Assgmt_B1_v1_16032017.CSV > NoticesPrinting_v1_farah.csv
^
Here unnecessary quote
像这样纠正
awk -v DATE="$(date +"%d%m%Y")" 'BEGIN{print DATE }1; END{print "EOF"NR-1}' Assgmt_B1_v1_16032017.CSV > NoticesPrinting_v1_farah.csv
和强>
awk -v DATE="${Today_Date}" path="${Target_Dir}"'BEGIN{print DATE};END{print "EOF"NR-1}' "${Source_Dir}/${log}" > file= path ""NoticesPrinting_v1".csv"
^ ^
Missing -v Missing space ^
O/p redirection
如下所示纠正
awk -v DATE="${Today_Date}" -v path="${Target_Dir}" '
BEGIN{print DATE};
END{print "EOF"NR-1}
' "${Source_Dir}/${log}" > "NoticesPrinting_v1.csv"
和反引号(`...`
)是最老的非POSIX兼容的bourne-shell所需的遗留语法,$(...)
是POSIX,更优选,至少{{1}在视觉上更突出。
$(...)
要
Today_Date=`date +"%d%m%Y"`
请参阅:Why is $(...) preferred over (`...`
) (backticks)?
回答评论
输出结果但只有标题和预告片...输出 不会出现
Today_Date=$(date +"%d%m%Y")