Text-Processing

Bash:將列附加到表中

  • November 23, 2013

如果您想將一列(而不是一行)附加到表中,並且該列肯定具有相同數量的元素,您該怎麼做?

給定一組每天都在變化的文件,你想跟踪它。

一個例子是:

file1 3443 words 11-20-13 44 4788 words 11-23-13 
file2 4457 words ...

你想要這個paste實用程序:

paste history today > new_history

預設情況下,paste用 . 分隔行tab。您可以使用-d選項更改它。

paste僅當要組合的文件具有相同的行數、相同的順序並且沒有可能需要從其中一個文件中刪除的鍵時,才能按預期工作。有關稍微複雜的實用程序,請參閱join

我能想到的最簡單的方法是遍歷前幾天的輸出並在每一行的末尾列印該行+您想要的新內容。

$ while read i; do printf "%s %s\n" "$i" "..new stuff.."; done < prior.txt

例子

假設我將您的行放入文件並呼叫它prior.txt

file1 3443 words 11-20-13 44 4788 words 11-23-13
file2 4457 words ...

如果我執行上面的命令,我會得到以下輸出:

$ while read i; do printf "%s %s\n" "$i" "..new stuff.."; done < prior.txt
file1 3443 words 11-20-13 44 4788 words 11-23-13 ..new stuff..
file2 4457 words ... ..new stuff..

細節

上面使用一個while循環來遍歷prior.txt. 然後我使用printf列印包含在變數中的那一行,$i然後是字元串..new stuff..

您可以根據需要將自己的內容交換..new stuff..或擴充以上內容以滿足您的需要。

引用自:https://unix.stackexchange.com/questions/102304