любой способ объединить grep и tail для мониторинга создания таблиц из командной строки

Использование awkвместо sed:

awk -v FS=':' -v OFS=':' '{ gsub(/\\/,"/",$1) } { print }'

Это обрабатывает данные как :-запись с разделителями и использует gsub(), чтобы заменить все обратные косые черты прямыми косыми чертами в первом поле. Затем он выводит измененные данные.

Я установил разделитель полей ввода ( FS) и разделитель полей вывода ( OFS) на :, чтобы ввод был разделен двоеточием и чтобы двоеточие позже снова вставлялось, когда происходит вывод.


Если у вас есть текст в переменной оболочки, вы можете сделать это непосредственно в оболочке без использования каких-либо внешних утилит:

a='a\b\c\d:text\text'
b=${a%%:*}  # the start of the string ("remove the first : and everything after it from $a")
c=${a#*:}   # the end of the string ("remove the first : and everything before it from $a")

a="${b//\\//}:$c"

printf '%s\n' "$a"

Этот фрагмент кода напечатает строку a/b/c/d:text \textв любой sh-оболочке, поддерживающей расширение параметра ${parameter//pattern/string}(расширение стандарта POSIX).

Это более или менее имитирует код awk.

0
04.08.2016, 18:10
0 ответов

Теги

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