Linux/Unix - 管道输出加入

iJa*_*ava 1 unix linux join task

我是Linux/Unix的新手,我不时在做一些运动.我正在做练习,直到我找到一个部分.

普通排序quotes.t5并输出要加入的输出.在连接使用字段分隔符中,从stdin和quotes.comms读取,输出到quotes.t6

问题是,我不明白这部分是在问什么.

几天前我在服务器上运行了这个命令:

wget 'http://finance.yahoo.com/d/quotes.csv?s=BARC.L+0992.HK+RHT+AAPL+ADI+AEIS+AGNC+AMAT+AMGN+AMRN+ARCC+ARIA+ARNA+ATVI+BBRY+BIDU+BRCD+BRCM+BSFT+CENX+CERE+CMCSA+COCO+CSCO+CSIQ+CSOD+CTRP+CTSH+CYTX+DRYS+DTV+DXM+EA+EBAY+EGLE+ENDP+ESRX+EXPD+EXTR+FANG+FAST+FB+FCEL+FITB+FLEX+FOXA+FSLR+FTR+GALE+GERN+GILD+GMCR+GRPN+GTAT+HBAN+HDS+HIMX+HSOL+IMGN+INTC+JASO+JBLU+JDSU+KERX+LINE+LINTA+MDLZ+MNKD+MPEL+MSFT+MU+MXIM+MYL+NFLX+NIHD+NUAN+NVDA+ONNN+ORIG+OTEX+OXBT+PENN+PMCS+PSEC+QCOM+RBCN+REGN+RFMD+RSOL+SCTY+SINA+SIRI+SNDK+SPWR+SYMC+TSLA+TUES+TWGP+TXN+VOLC+WEN+YHOO+ZNGA&f=nab' -O quotes.csv
Run Code Online (Sandbox Code Playgroud)

但是生成的文件quotes.csv不够好,无法深入了解财务状况,所以我需要你的帮助!

检查点.完成本课程后,您必须得到:

$ sha256sum -c quotesshasums
quotes.t1: OK
quotes.t2: OK
quotes.t3: OK
quotes.t4: OK
quotes.t5: OK
quotes.t6: OK
Run Code Online (Sandbox Code Playgroud)
  • quotes.csv 我们有一个包含股票价格数据的源文件.行以CRLF终止,这不是Unix风格.让它终止LF.意味着从每一行中删除CR(\ r)字节.为此,请使用sed(man sed)替换命令,输出到quotes.t1更多信息,请访问http://en.wikipedia.org/wiki/Newline

  • 运行检查点以测试quotes.t1是否正常.

  • 使用head和tail命令将除引号.t1的第一行和最后一行之外的所有内容输出到quotes.t2

  • 使用竖线(竖线|)而不是逗号分隔字段.

    sed -re 's/,([0-9.]+),([0-9.]+)/|\1|\2/g' quotes.t2 > quotes.t3
    
    Run Code Online (Sandbox Code Playgroud)
  • 按第三个字段(键)排序的数字,不要忘记新的分隔符,输出到quotes.t4q输出最后五行,剪切它留下结果中的第一个和第三个字段. quotes.t5

  • 普通排序quotes.t5并输出要加入的输出.在连接使用字段分隔符中,从stdin和quotes.comms读取,输出到quotes.t6

如果需要,我可以发布本练习的所有部分,但我想你可能知道我需要在这部分做什么.主要是我需要知道加入意味着什么.我在谷歌搜索过这个,但我仍然没有得到它.

Jon*_*ler 6

将评论的缩写版本转换为答案.

该问题的原始版本询问:

普通排序quotes.t5并输出要加入的输出.在连接使用字段分隔符中,从stdin和quotes.comms读取,输出到quotes.t6

你需要知道这join是一个命令.如果指定-为其两个输入文件名之一,它可以从标准输入读取.

在我看来,这些步骤非常简单:

sort quotes.t5 | join -t'|' - quotes.comm > quotes.t6
Run Code Online (Sandbox Code Playgroud)

也许:

sort quotes.t5 | join -t'|' quotes.comm - >quotes.t6
Run Code Online (Sandbox Code Playgroud)

我不知道你怎么知道哪个是必需的,除了解释'从stdin读取quotes.comms' 和'作为第一和quotes.comms第二的标准输入.