2013-02-28 48 views
0

我試圖運行像這樣的命令:是否可以將stdout附加到另一個stdout?

gunzip -dc file.gz | tail +5c 

所以這將輸出二進制文件的內容減去前4個字節到標準輸出,和它的作品。現在我需要追加3個額外的字節到流的末尾,但只使用stdout,從來沒有一個文件。

想象的文件包含:

1234567890 

隨着當前命令,我得到:

567890 

但我需要:

567890000 

所以...任何想法?

回答

0

好了,根據答案,最終的解決方案是:

gzcat file.gz | tail -c +5 | echo 000 

我並不需要,實際上也不應該使用tr -d '\n' ,因爲它會刪除文件中間的換行符。

-1

五月像

$回聲 「`gunzip解-dc file.gz |尾+ 5c`BBB」

(其中BBB被你的三個額外的字節)爲你工作?

+1

爲什麼要鏈接到pastebin? – 2013-02-28 19:41:22

+0

嗨@Fredrik,我明白它看起來不合適,但我是新來的stackoverflow,並不能迅速找出如何逃避「'」字符。 – yahe 2013-03-01 09:51:24

+0

我不認爲tail命令接受像'BBB'這樣的額外參數。至少在HP-UX中。 – zedascouves 2013-03-01 11:00:25

3

試試這個:

{ gunzip -dc file.gz | tail -c 5 | tr -d '\n'; echo 000; } 
+1

請注意,如果'file'的最後5個字符之一是'\ n' .... – twalberg 2013-02-28 20:12:53

+0

爲什麼要刪除換行符?我想如果'尾巴'引入了一個尾隨的換行符,它就沒有必要了。 – chepner 2013-02-28 20:16:15

+0

該文件是二進制文件,所以我不確定是否替換換行符是個好主意。目標是保持原來的輸出,然後在最後添加三個額外的字節。 – zedascouves 2013-03-01 09:58:34

相關問題