我試圖管數據到「剪切」,比如說,刪除第一列文本。這工作使用linux「剪切」與標準輸入
$ cat test.txt | cut -d\ -f2-
從標準輸入讀取也可以工作:
$ cut -d\ -f2- -
? doc/html/analysis.html
? doc/html/classxytree-members.html
<CTRL+D>
然而,一旦管道參與,它不接受我的<CTRL+D>
了,我不能使信號「結束文件「:
$ cut -d\ -f2- - | xargs echo
更新:這顯然是一個老版本的bash(3.00.15)的錯誤。它在更新的版本中工作(嘗試4.0.33和3.2.25)。儘管有些解決方法會很好,因爲我無法輕鬆升級。
背景:我有一個腳本/ oneliner,讓我的cvs status
形式
? filename
例如精簡輸出(我知道,CVS ...)對於尚未提交的文件。我希望能夠複製+粘貼該命令的部分輸出,並將其用作另一個命令的輸入,並將這些文件添加到cvs中。說:
$ cut -d\ -f2- | xargs cvs add
<paste lines>
<CTRL-D> # <-- doesn't work
想法?
這在原則上起作用,但不適用於我的情況。原來問題是一個非常古老的bash版本。 順便說一句,你的例子中的'cat'什麼也不做,可以省略。它只是將鍵盤輸入傳送給'cut',無論如何,當調用沒有文件名的剪切時,你會得到它。 有一個古老的笑話,它被認爲是通過管道發送貓的動物殘忍;-)。 – jdm 2010-02-09 12:30:55