क्यों यह स्ट्रैसटाइम वाला gawk SUSE में काम नहीं करता बल्कि उबंटू और मैक पर काम करता है


0

यहां मैंने स्ट्रिंग के रूप में $ 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 के संस्करण की जांच कैसे कर सकता हूं?
वाल्टर स्क्रैम्बेयर

एक कूबड़ पर, gawk --version? या पैकेज प्रबंधक से पूछें कि उसने क्या स्थापित किया है।
xenoid

SUSE पर मेरे पास GNU Awk 4.1.0 API: 1.0 है और उबटनू GNU Akw 4.1.4 API पर: 1.1, मैं अपने SUSE gawk को कैसे अपडेट कर सकता हूं? धन्यवाद
वाल्टर Schrabmair
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.