यहां मैंने स्ट्रिंग के रूप में $ 11 दर्ज किया है और यह काम करता है।
gawk 'FS=\",\" {match($6,/([^\/])\/([^\/])\/([^\/]+)/,a); $11=sprintf(\"%d
%02d -%d 0 0 0\",a[3],a[1],1);$6=sprintf(\"%d-%02d-
%02d\",a[3],a[1],a[2]);$6=strftime(\"%Y-%m-%d %H:%M:%S\",mktime(\"2017 08
-3 0 0 0\")); print $1,$2,$3,$4,$5,$6,$7,$8,$9,$11,\"".date("Y-m-d
H:i:s")."\"}' OFS=',' ./stock_File.csv > ./stock_File_DEMO.csv
लेकिन जब मैं यह कोशिश करता हूं
gawk 'FS=\",\" {match($6,/([^\/])\/([^\/])\/([^\/]+)/,a);
$11=sprintf(\"%d %02d -%d 0 0 0\",a[3],a[1],1);$6=sprintf(\"%d-%02d-
%02d\",a[3],a[1],a[2]);$6=strftime(\"%Y-%m-%d %H:%M:%S\",mktime($11));
print $1,$2,$3,$4,$5,$6,$7,$8,$9,$11,\"".date("Y-m-d
H:i:s")."\"}' OFS=',' ./stock_File.csv > ./stock_File_DEMO.csv
मुझे यह त्रुटि SUSE में मिली लेकिन UBUNTO या मैक OSX एल कैप्शन में नहीं:
fatal: strftime: second argument less than 0 or too big for time_t
कृपया ऐसा न करें कि $11=sprintf(\"%d %02d -%d 0 0 0\",a[3],a[1],1)
केवल एक डेमो है क्योंकि 1 वास्तविक स्क्रिप्ट में एक शेल वेरिएबल है और संपूर्ण सिप को निष्पादन द्वारा php में किया जाता है। मैंने समस्या को मूल समस्या में कम कर दिया है।
मेरी इनपुट फ़ाइल इस प्रकार है:
"MERCK KGAA O.N.","MRK.DE",92.59,92.33,"-0.28%","8/7/2017",N/A,92.21,93.01
"MUENCH.RUECKVERS.VNA O.N.","MUV2.DE",186.15,186.30,"+0.08%","8/7/2017",N/A,185.80,186.65
"PROSIEBENSAT.1 NA O.N.","PSM.DE",34.240,34.105,"-0.394%","8/7/2017",5.260,34.015,34.305
"RWE AG ST O.N.","RWE.DE",18.495,18.505,"+0.054%","8/7/2017",N/A,18.395,18.545
"SAP SE O.N.","SAP.DE",91.44,91.06,"-0.42%","8/7/2017",N/A,90.99,91.51
"SIEMENS AG NA","SIE.DE",111.55,111.60,"+0.04%","8/7/2017",N/A,111.45,112.25
"THYSSENKRUPP AG O.N.","TKA.DE",25.41,25.59,"+0.73%","8/7/2017",0.54,25.48,25.73
"VOLKSWAGEN AG ST O.N.","VOW.DE",131.95,131.35,"-0.45%","8/7/2017",N/A,131.00,131.95
"VONOVIA SE NA O.N.","VNA.DE",35.900,35.765,"-0.376%","8/7/2017",N/A,35.685,36.000
मेरे लिए कोई विचार या मदद? धन्यवाद
जाँच करने के लिए पहली बात विभिन्न उपयोगिताओं के संस्करण हैं। जबकि उबंटू में अप-टू-डेट सॉफ़्टवेयर (कम से कम प्रकाशन समय पर) शामिल है, कुछ अन्य डिस्ट्रो बहुत पुराने संस्करणों से चिपके रहते हैं।
—
xenoid
धन्यवाद, आप मुझे बताएं कि मैं SUSE gawk के संस्करण की जांच कैसे कर सकता हूं?
—
वाल्टर स्क्रैम्बेयर
एक कूबड़ पर,
—
xenoid
gawk --version
? या पैकेज प्रबंधक से पूछें कि उसने क्या स्थापित किया है।
SUSE पर मेरे पास GNU Awk 4.1.0 API: 1.0 है और उबटनू GNU Akw 4.1.4 API पर: 1.1, मैं अपने SUSE gawk को कैसे अपडेट कर सकता हूं? धन्यवाद
—
वाल्टर Schrabmair