2017-04-11 26 views
1

到目前爲止我的代碼是這樣的:的bash:讀取文件和打印1個在標準輸出每行字

#!/bin/bash 

for word in $(<$1) 
do 
    echo "$word" 
done 

,其與包含輸入文件(SP =空間,TAB =標籤和EOL - 行尾):

< SP>時間 < SP>具有 < SP>來, < TAB> < SP > < SP>海象 < SP>說, < SP> < SP> < SP> < SP>說話 < SP> < SP>許多 < SP的>東西: < EOL>

將輸出:

The 
time 
has 
come, 
the 
Walrus 
said, 
to 
speak 
of 
many 
things: 

我需要我的程序與的功能輸出被定義爲通過空白TAB字符邊界的字符的任何序列。因此,使用相同的輸入,我希望我的腳本輸出:

The 
time 
has 
come, 

the 
Walrus 
said, 


to 
speak 
of 
many 
things: 

有關如何實現這一點的任何想法?

在此先感謝您的幫助!

+0

它看起來既像你輸出的已經把話當作是空白序列/製表符分隔的字符,但第二個輸出有逗號後的單詞或兩個空行 - 但這在任何地方都沒有提及。你能澄清嗎? –

+0

@BenjaminW。正如您從輸入文本中看到的,「說」和「到」之間有3個空格,這意味着它會在輸出中爲額外的空格留出額外的空白。這很奇怪,我知道,我不是100%肯定爲什麼它應該是這樣的,但哦哦 – Swallows

回答

1

如果我正確地理解了目標,你應該能夠通過使用tr把空格和製表符成線做它打破:

#!/bin/bash 

tr ' \t' '\n' <"$1" 
+0

這很有道理,謝謝你的幫助! – Swallows

相關問題