Я пытаюсь передать данные в «вырезать», скажем, вырезать первый столбец текста. Это работает
$ 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
(я знаю, CVS ...) в виде
? filename
например. для файла, еще не переданного. Я хотел бы иметь возможность копировать + вставлять части вывода из этой команды и использовать его в качестве ввода для другой команды, которая добавляет эти файлы в cvs. Скажи:
$ cut -d\ -f2- | xargs cvs add
<paste lines>
<CTRL-D> # <-- doesn't work
Идеи