Группировка замены Sed добавляет в OSX, а не ожидаемом sub в Linux

[114002] Вы также можете просто использовать [114496]grep[114497]:[12192] [114498]-v[114499] печатает линии, не соответствующие заданному шаблону. [12193]Или [114500]perl[114501]:[12194]или[12195]
1
11.04.2015, 06:33
4 ответа

Используйте опцию global apropos в man .

 -K, --global-apropos
              Search for text in all manual pages.  This is a brute-force search, and is likely to take some time; if you can, you should specify a section to reduce the number  of pages that need to be searched.  Search terms may be simple strings (the default), or regular expressions if the --regex option is used.

Итак, man -K viminfo предоставит вам нужную страницу.

-121--24357-

Попробуйте освободить место после знака «=». Я имею в виду, попробуйте

number=$(echo "$number"| cut -f 3 )

вместо

number= $(echo "$number"| cut -f 3 )
-121--154312-

Кажется, что/U и/L просто не работают с OSX/BSD sed

вместе с

sed /pattern/,+2d # like `sed '/pattern/{N;N;d;}'`
sed -n 0~3p # like `awk NR%3==0`
sed /pattern/Q # like `awk '/pattern/{exit}1'` or `sed -n '/pattern/,$!p'`
sed 's/\b./\u&/g' # \u converts the next character to uppercase
sed 's/^./\l&/' # \l converts the next character to lowercase
sed -i '1ecat file_to_prepend' file # e executes a shell command
sed -n l0 # 0 disables wrapping

Спасибо, ребята. Моя репутация еще недостаточно высока, чтобы поддержать, но Майк, ты решил мою проблему с сепом, и я согласен со Стефаном. Кажется, что неловкость - лучший выбор.

0
27.01.2020, 23:16
sed 'h;s/[^,]*,[^,]*,//
     y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
     H;x;s/[^,]*\n//

' foo.file
3
27.01.2020, 23:16

Простая задача не требует SED

while IFS=',' read -r first mid last
do
    echo "$first, $mid, ${last^^}"
done < file_with_commas

Если Bash Bash версия не поддерживает переменное расширение, которое вы можете использовать TR

last=$(echo $last | tr [[:lower:]] [[:upper:]])
0
27.01.2020, 23:16

\ U - это GNUism, на самом деле вдохновленный BSDism, поскольку он происходит от эквивалентной команды s в ex редактор (режим командной строки vi ).

OS / X sed , скорее всего, происходит от самой FreeBSD, происходящей от 4.4BSD sed , которая была переписана с нуля из-за проблем с авторскими правами с AT&T. В любом случае, ни BSD, ни AT&T sed не поддерживают \ U в своей команде s .

Для преобразования в верхний регистр в переносимом sed обычно используется команда y , как уже было показано .

Но здесь лучше, вероятно, использовать awk :

awk -F, -vOFS=, '{$1 = toupper($1); print}'
2
27.01.2020, 23:16

Теги

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