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

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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.