fork download
  1. #!/bin/bash
  2.  
  3. # ideone boilerplate - we can't write files in the home directory;
  4. # so create a temporary directory for our files instead
  5. t=$(mktemp -d -t ideone.XXXXXXXXXXXX) || exit
  6. trap 'rm -rf "$t"' ERR EXIT
  7. cd "$t"
  8.  
  9. cat <<\: >web_file.csv
  10. Inv_SKU,Web_SKU,Brand,Barcode
  11. 225481-34,225481-34,brand1,987654321
  12. 0486592,0486592,brand2,654871233
  13. AB56412,AB56412,brand2,651273214
  14. LL-123456,LL-123456,brand3,748912349
  15. JLPD-65,JLPD-65,brand6,341541648
  16. 20143966,20143966,brand3,82193714
  17. 39585824,39585824,brand5,36837329
  18. 78066099,78066099,brand4,98398987
  19. 44381051,44381051,brand1,9090428
  20. 86529443,86529443,brand4,6861670
  21. DF 5645 12,DF 5645 12,brand1,489456138
  22. 9845671325,9845671325,brand4,498451315
  23. 59634923,59634923,brand4,35828574
  24. 85290760,85290760,brand2,64562216
  25. 41217184,41217184,brand4,12816236
  26. AE48915,AE48915,brand1,342536125
  27. 93981723,93981723,brand2,58155601
  28. :
  29.  
  30. cat <<\: >inv_file.csv
  31. Inv_SKU,Web_SKU,Brand,Barcode
  32. 0486592,0486592,brand2,654871233
  33. LL-123456,LL-123456,brand3,748912349
  34. 9845671325,9845671325,brand4,498451315
  35. OI3248967,OI3248967,brand2,891513211
  36. AB56412,AB56412,brand2,651273214
  37. DF 5645 12,DF 5645 12,brand1,489456138
  38. 225481-34,225481-34,brand1,987654321
  39. 123456789,123456789,brand5,654986413
  40. 9841531,9841531,brand3,543254512
  41. AE48915,AE48915,brand1,342536125
  42. JLPD-65,JLPD-65,brand6,341541648
  43. MMMM,MMMM,brand7,384941542
  44. 23481-4323,23481-4323,brand3,489123157
  45. 98451321,98451321,brand4,498121354
  46. 23454152,23454152,brand2,894165123
  47. 10275690,10275690,brand2,25612670
  48. 20143966,20143966,brand3,82193714
  49. 59634923,59634923,brand4,35828574
  50. 65800253,65800253,brand5,72318134
  51. 67722613,67722613,brand6,93290033
  52. 92617199,92617199,brand7,95078073
  53. 15379652,15379652,brand1,56281224
  54. 85290760,85290760,brand2,64562216
  55. 78066099,78066099,brand4,98398987
  56. 41217184,41217184,brand4,12816236
  57. 87152990,87152990,brand4,95058925
  58. 73813369,73813369,brand1,2395994
  59. 50201544,50201544,brand1,9167830
  60. 93981723,93981723,brand2,58155601
  61. 39585824,39585824,brand5,36837329
  62. 29082963,29082963,brand3,23393947
  63. 23856043,23856043,brand8,57295562
  64. 74249006,74249006,brand8,83219065
  65. 94376071,94376071,brand8,94887004
  66. 14553763,14553763,brand8,14223230
  67. 44381051,44381051,brand1,9090428
  68. 7598085,7598085,brand1,48967969
  69. 56383025,56383025,brand2,68864452
  70. 44338055,44338055,brand4,47043853
  71. 86529443,86529443,brand4,6861670
  72. :
  73.  
  74. touch result.csv
  75.  
  76. cat <<\: >prog.py
  77. with open('inv_file.csv', 'r') as f1, open('web_file.csv', 'r') as f2:
  78. inv_file = f1.readlines()
  79. web_file = f2.readlines()
  80.  
  81.  
  82. with open('result.csv', 'r+') as f3:
  83. result_file = f3.readlines()
  84.  
  85. while len(result_file) < len(web_file):
  86. for row in inv_file:
  87. for row1 in web_file:
  88. if row[0] in row1[0]:
  89. f3.write(row1)
  90. break
  91. :
  92.  
  93. cat <<\: >prog2.py
  94. import csv
  95.  
  96. with open('inv_file.csv', 'r') as f1,\
  97. open('web_file.csv', 'r') as f2, \
  98. open('result.csv', 'a') as f3:
  99. inv = [x[0] for x in csv.reader(f1)]
  100. writer = csv.writer(f3)
  101. for row in csv.reader(f2):
  102. if row[0] in inv:
  103. writer.writerow(row)
  104. :
  105.  
  106. echo '** Original code'
  107.  
  108. python3 prog.py
  109.  
  110. cat result.csv
  111.  
  112. echo '** Duplicates'
  113.  
  114. sort result.csv | uniq -d
  115.  
  116. rm result.csv
  117.  
  118. echo '** Fixed'
  119.  
  120. python3 prog2.py
  121.  
  122. cat result.csv
  123.  
  124. echo '** Duplicates'
  125.  
  126. sort result.csv | uniq -d
  127.  
Success #stdin #stdout 0.09s 9452KB
stdin
Standard input is empty
stdout
** Original code
Inv_SKU,Web_SKU,Brand,Barcode
0486592,0486592,brand2,654871233
LL-123456,LL-123456,brand3,748912349
9845671325,9845671325,brand4,498451315
93981723,93981723,brand2,58155601
AB56412,AB56412,brand2,651273214
AE48915,AE48915,brand1,342536125
DF 5645 12,DF 5645 12,brand1,489456138
225481-34,225481-34,brand1,987654321
20143966,20143966,brand3,82193714
9845671325,9845671325,brand4,498451315
93981723,93981723,brand2,58155601
AB56412,AB56412,brand2,651273214
AE48915,AE48915,brand1,342536125
JLPD-65,JLPD-65,brand6,341541648
225481-34,225481-34,brand1,987654321
20143966,20143966,brand3,82193714
9845671325,9845671325,brand4,498451315
93981723,93981723,brand2,58155601
225481-34,225481-34,brand1,987654321
20143966,20143966,brand3,82193714
225481-34,225481-34,brand1,987654321
20143966,20143966,brand3,82193714
59634923,59634923,brand4,35828574
9845671325,9845671325,brand4,498451315
93981723,93981723,brand2,58155601
86529443,86529443,brand4,6861670
85290760,85290760,brand2,64562216
78066099,78066099,brand4,98398987
44381051,44381051,brand1,9090428
41217184,41217184,brand4,12816236
86529443,86529443,brand4,6861670
85290760,85290760,brand2,64562216
78066099,78066099,brand4,98398987
59634923,59634923,brand4,35828574
9845671325,9845671325,brand4,498451315
93981723,93981723,brand2,58155601
39585824,39585824,brand5,36837329
225481-34,225481-34,brand1,987654321
20143966,20143966,brand3,82193714
225481-34,225481-34,brand1,987654321
20143966,20143966,brand3,82193714
78066099,78066099,brand4,98398987
9845671325,9845671325,brand4,498451315
93981723,93981723,brand2,58155601
44381051,44381051,brand1,9090428
41217184,41217184,brand4,12816236
78066099,78066099,brand4,98398987
59634923,59634923,brand4,35828574
44381051,44381051,brand1,9090428
41217184,41217184,brand4,12816236
86529443,86529443,brand4,6861670
85290760,85290760,brand2,64562216
** Duplicates
20143966,20143966,brand3,82193714
225481-34,225481-34,brand1,987654321
41217184,41217184,brand4,12816236
44381051,44381051,brand1,9090428
59634923,59634923,brand4,35828574
78066099,78066099,brand4,98398987
85290760,85290760,brand2,64562216
86529443,86529443,brand4,6861670
93981723,93981723,brand2,58155601
9845671325,9845671325,brand4,498451315
AB56412,AB56412,brand2,651273214
AE48915,AE48915,brand1,342536125
** Fixed
Inv_SKU,Web_SKU,Brand,Barcode
225481-34,225481-34,brand1,987654321
0486592,0486592,brand2,654871233
AB56412,AB56412,brand2,651273214
LL-123456,LL-123456,brand3,748912349
JLPD-65,JLPD-65,brand6,341541648
20143966,20143966,brand3,82193714
39585824,39585824,brand5,36837329
78066099,78066099,brand4,98398987
44381051,44381051,brand1,9090428
86529443,86529443,brand4,6861670
DF 5645 12,DF 5645 12,brand1,489456138
9845671325,9845671325,brand4,498451315
59634923,59634923,brand4,35828574
85290760,85290760,brand2,64562216
41217184,41217184,brand4,12816236
AE48915,AE48915,brand1,342536125
93981723,93981723,brand2,58155601
** Duplicates