2013-10-28 108 views
1

我一直在閱讀教程,我需要使用cat和粘貼功能(用於製作一種數組,表格),所有教程都使用這些命令對文件進行讀取,並從文件中讀取文件硬盤驅動器讓我的任務非常緩慢,所以我想知道如何將它們與變量一起使用,我試過並得到了錯誤的結果,所以也許你可以用sintaxis來幫助我。Cat和粘貼變量UNIX

基本上我想打一個表像這樣的變量:

00001 Tacos
00023 pizza
00076 burger
00103 chopsuey
00167 burrito
01034 Tamales

和執行程序,並從輸出採取具體的數據之後,我的每一個元素,所以我越來越:

  1. 玉米餅
  2. 比薩餅 ....

你不必做方案,只是想確保貓和粘貼是那些在這裏和它們的語法使用,如果他們不接受我的任何建議。

對不起,我可能沒有解釋我自己,比較遺憾的是,我有A和B,兩個變量,一個是00001,並通過爲玉米餅,然後我希望他們合併到一起,並將其存儲在一個變量,然後再做同樣的事情,但要把它們放在一個新的行中。抱歉誤會。

末我希望有一個變量這個在它:

00001 Tacos
00023 pizza
00076 burger
00103 chopsuey
00167 burrito
01034 Tamales

謝謝!

+0

這是不是很清楚你想要做什麼。如果你'var = $(paste ...)'然後'echo「$ var」',格式將被保留。 – fedorqui

+0

哦,我的意思是我想粘貼或貓的參數變量 – Tamalero

回答

2

如果你有一個工具只對文件工作作爲輸入(例如diffpaste),你可以使用<(…)符號創建一個假的文件,其內容是由一個shell命令創建:

cat <(echo "hello world") 

這將打印hello world。假文件缺乏磁盤文件的一些功能;例如它不能是seek。所以想要seek文件中的特定位置的程序,例如讀取文件兩次,將會失敗。但是,對於你的情況,就應該足夠了,你可以使用這樣的東西:

paste <(echo "$a") <(echo "$b") 

對於你的情況更具體:

cat input.txt | { 
    x='' 
    y='' 
    while read a 
    do 
    read b 
    x=$(echo "$x"; echo "$a") 
    y=$(echo "$y"; echo "$b") 
    done 
    paste <(echo "$x") <(echo "$y") 
} 

(我假設輸入是這個在這裏:)

00001 
Tacos 
00023 
pizza 
00076 
burger 
00103 
chopsuey 
00167 
burrito 
01034 
Tamales 
+0

是的,我做到了,大部分是因爲我不知道如何:<(回聲「你好世界」) – Tamalero

+0

想到這麼:)是對我來說,當我發現那一刻時,它就是我的時刻。 – Alfe

+0

+1。不知道爲什麼這個答案之前沒有提高。 – merlin2011