我正在尝试将数据导入“剪切”,例如,删除第一列文本。这工作
$ cat test.txt | cut -d\ -f2-
从stdin读取也有效:
$ 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
(我知道,CVS ......)的形式给出了一个简洁的输出
? filename
e.g。对于尚未提交的文件。我希望能够从该命令复制+粘贴部分输出,并将其用作另一个命令的输入,将这些文件添加到cvs。说:
$ cut -d\ -f2- | xargs cvs add
<paste lines>
<CTRL-D> # <-- doesn't work
想法?
答案 0 :(得分:4)
你试过吗
$ cat | cut -d\ -f2- | xargs cvs add
<paste lines>
<CTRL-D> # <-- doesn't work
答案 1 :(得分:0)
你的例子对我来说很好。你用的是什么外壳?什么工具?
有时会引起人们兴趣的一件事是 Ctrl - D 只有在它是行中的第一个字符时才有效。如果复制和粘贴,有时可能会意外地将空格作为行的第一个字符,或者在粘贴块的末尾没有换行符,在这种情况下 Ctrl - D 不行。只需点击返回,然后再次尝试 Ctrl - D ,看看是否能解决问题。