Команда похожа на «да», но выводит символы новой строки?

$ grep -F ed file|fold -w 5|fold -w 3|grep -E '^[[:upper:]]..|^[0-9]'|paste -sd ' \0\n' -
Ted 30000
Ned 25000

Или:

$ cut -c 1-3,11- file | grep -F ed | fold -w 3 | paste -sd ' \0\n' -
Ted 30000
Ned 25000

Или (при условии GNU grep ):

$ grep -oE '^.{3}|.{5}$' file | paste -sd ' \n' - | grep -F ed
Ted 30000
Ned 25000

Вы также можете сделать (при условии, что оболочка с поддержкой подстановки процессов) что-то вроде:

separate() {
  fold -w 1 -- "$@" |
    paste -sd '\0\0 \0\0\0\0\0\0 \0\0\0\0\n' - |
    sort -k 1,1
}

join <(separate file | cut -d ' ' -f 1 | grep -F ed
      ) <(separate file) | cut -d ' ' -f 1,3
3
11.05.2018, 01:18
2 ответа

Similar a lo que se mencionó en los comentarios, esto lo hará:

yes '<enter>'

Dará como resultado la cadena literal <enter>, o puede usar ''para saltos de línea.

yes ''
12
27.01.2020, 21:11

Bueno, si yes ''no fuera lo suficientemente bueno (y lo es )pero solo querías presumir siendo más esotérico, siempre podrías hacer

tr \\000 \\n < /dev/zero
4
27.01.2020, 21:11

Теги

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