Cut команда Error: разделитель должен быть одним символом

. Если вы видите процессы Java, порожденные диспетчером, в выводе ps, попробуйте проверить PPID этих процессов. Проверьте, является ли это процессом bash, и если да, попробуйте его убить.

0
28.09.2018, 23:10
2 ответа

Попробуйте эту команду

    history | grep history | awk NR==1'{print $8 " " $9 " " $10 " " $11 " " $12 "" $13 }'
xargs cut -d ' '-f1

NR==1:awkсчитывает ячейки в первой строке таблицы, а затем печатает столбцы, относящиеся к «xargs cut -d ' ' -f1», которые равны 8 -12

0
28.01.2020, 02:31

Некоторые пояснения:

  • На самом деле вам нужно второе поле, поэтому вам нужно изменить его на `cut -d ' ' -f 2'.
  • xargsздесь не применяется. Что он делает, так это принимает стандартный ввод и передает его в качестве аргументов команде. Однако cutпо умолчанию работает со стандартным вводом, что вам и нужно. history | grep history | xargs cut […]приводит к созданию таких команд, как cut […] [some content from the Bash history]'. Чтобы обработать серию номеров строк, напечатанных с новой строкой после каждой, вам нужно использовать цикл while read:

    while IFS=$'\n' read -r -u9 number
    do
        history -d "$number"
    done 9< <(history | grep […] | cut […])
    
  • some_command | cat | other_commandсовершенно излишен. catпо умолчанию просто копирует стандартный ввод в стандартный вывод.
2
28.01.2020, 02:31

Теги

Похожие вопросы