Za pomocą narzędzia wiersza polecenia cURL na komputerze Mac, co mogę zrobić z tym skryptem, aby poprosić go o pobranie danych giełdowych, które zastąpią przecinki NIE MAJĄ PRZESTRZEŃ

1

Przykład: Akcje wyróżniające Google wynoszą 670 000 000 i ta wartość jest gromadzona w pliku txt z interfejsu API Yahoo Finance za pomocą poniższego skryptu. Problemem jest; że liczby Z przecinkami lub spacjami są cholernym koszmarem dla ogranicznika programu Excel, który powinien zrozumieć, gdy ściągam ten plik txt do Excela.

Uwaga: Potrzebuję skryptu, aby przywrócić tę wartość i wszystkie inne wartości BEZ przecinków LUB spacji. Potrzebuję 670000000, aby ogranicznik w Excelu mógł umieszczać dane w kolumnach.

Zadałem to kilka razy. Czy ktoś może wyciągnąć mnie z mojej nędzy, zanim przepuklina znowu się pojawi i mac zostanie uruchomiony przez okno. Dziękuję Ci.

cd desktop/quoteUpdate
while true
do
  curl -o quotes.txt -s "http://download.finance.yahoo.com/d/quotes.csv?s=goog,aapl&f=nsl1c1p2j2r"
  sed -i '.bak' 's/,/ /g' quotes.txt  # replace commas with spaces
  echo UPDATED:
  date
  sleep 10
done
Chris Dormani
źródło

Odpowiedzi:

2

Wstyd na Yahoo za nieprawidłowe CSV

$ cat quotes.csv 
"Google Inc.","GOOG",501.79,+0.92,"+0.18%",   678,365,000,26.36
"Apple Inc.","AAPL",106.86,-2.94,"-2.68%",  5,864,839,000,17.02

$ sed 's/[[:blank:]]*\([[:digit:],]\+\)\(,[[:digit:].]\+\)/"\1"\2/' quotes.csv 
"Google Inc.","GOOG",501.79,+0.92,"+0.18%","678,365,000",26.36
"Apple Inc.","AAPL",106.86,-2.94,"-2.68%","5,864,839,000",17.02
Glenn Jackman
źródło
Cześć Glenn, jak włączyć to do skryptu. Nie jestem programistą. Czy muszę wstawić oba te akapity. Dzięki
Chris Dormani
Zamień swoje polecenie sed na:sed -i 's/[[:blank:]]*\([[:digit:],]\+\)\(,[[:digit:].]\+\)/"\1"\2/' quotes.txt
glenn jackman
Glenn ten kod niestety nie działa ze skryptem. Wartości pobrane z powrotem do pliku txt z interfejsu API Yahoo Finance nadal wracają z przecinkami. tzn. akcje Google pozostające do spłaty wynoszą 670 000 000 zamiast 670000000, których potrzebuję z powodu złego ogranicznika programu Excel. Czy możesz mi doradzić, chętnie prześlemy Ci zrzut ekranu, jeśli chcesz.
Chris Dormani
moja odpowiedź nie usuwa przecinków, cytuje to pole, dzięki czemu można je zaimportować do arkusza kalkulacyjnego jako prawidłowy plik CSV.
glenn jackman
Nie tego jednak szukałem. Mógłbym to już zrobić. Jest to wartość z przecinkami, gdy dostaje się do arkusza kalkulacyjnego z przecinkami, co jest problemem. Excel chce podzielić 678,000 000 na 3 oddzielne kolumny za pomocą ogranicznika kreatora tekstu ze względu na przecinki (co czyni całość bezużyteczną). Chciałbym, aby wartości w pliku txt były bez przecinków i spacji. tj. 670 000 000 to 67000000
Chris