Что-то не так с моим использованием wc или grep в командной строке linux? Я получаю +1 на счет моего персонажа

Когда я бегу

echo "obase=2;3" | bc | grep -v \n\s | wc -m

Баш возвращает 3. Но когда я бегу

echo "obase=2;3" | bc

Баш возвращается 11.

Почему на счету wc -m одна цифра?

1 ответ

Решение

Дополнительный символ - завершающий символ новой строки.

wc -m получает и считает следующие три символа: 11\n,

$ echo "obase=2;3" | bc | grep -v \n\s | od -c
0000000    1   1  \n                                                    
0000003

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

$ echo "obase=2;3" | bc | grep -v \n\s | tr -d '\n' | wc -m
       2
Другие вопросы по тегам