2015-04-09 2 views
-1

Я рассчитываю мой список, используя командуIncrement в сценарии оболочки

my_list=`echo $pdca` 

tr -dc '|' <<<"$my_list" | wc -w 

который подсчитывает слова из списка, как: abc|hty|jid|hjik|kilhj

word belong to a : abc 
0 
word belong to b : hty|jid 
1 
word belong to c : hjik|kilhj 
1 

Можете ли вы помочь мне здесь, чтобы увеличить счетчик на 1. Средство, в котором его подсчет 0 должен считаться 1 и где его счет 1 следует считать 2

, пожалуйста, помогите мне здесь.

Спасибо, Himanshu

+0

Назначьте счет переменной, затем используйте '$ ((var ++))', чтобы увеличить ее. – Barmar

ответ

0

я даже отдаленно не понять вопрос, но если

tr -dc '|' <<<"$my_list" | wc -w 

дает вам один меньше, чем вы хотите, попробуйте дополняя данные:

{ echo dummy; tr -dc '|' <<<"$my_list"; } | wc -w 

Это может быть чище/легче, чем инкремент переменной, в зависимости от остальной части скрипта. (Это поможет, если вы включили полный скрипт, демонстрирующий проблему.)

+0

Спасибо, william. Это сработало для меня. – Himanshu

0

Для подсчета полей, разделенных некоторым ограничителем лучше использовать awk, некоторые примеры:

awk -F '|' '{print NF}' <<< "abc|hty|jid|hjik|kilhj" 
5 

awk -F '|' '{print NF}' <<< "abc" 
1 

awk -F '|' '{print NF}' <<< "hty|jid" 
2 

Объяснение:

-F '|'  # set custom field separator as | 
{print NF} # print number of fields in input record