Ошибка простая и одна из главных вещей, которые я всегда путаю :Вы путаете Before
и RequiredBy
. Это не сочетается. Остальные правы насчет цели.
Использование grep:
grep -oP '^.*?\s[0-9](\s|$)' file
Опция -o
указывает grep напечатать только совпадение.
Шаблон ищет:
^
.*?
\s
[0-9]
(\s|$)
Если это (использование любого sed в любой оболочке на каждом компьютере UNIX )не все, что вам нужно, отредактируйте свой вопрос, чтобы предоставить лучший пример, включая строки, для которых это не работает:
$ sed 's/\( [0-9]\).*/\1/' file
word_word_word 0
word_word_word 1
word word word word 0
word 2
word word_word 3
Цикл for с awk:
awk '{
for(i=1;i<=NF;i++){
if($i ~ /[0-9]/){
printf "%s\n",$i;
break
}
printf "%s ",$i
}
}' file
Получит то, что вы хотите.