Удалить строки после каждого первого слова в текстовом файле

Файл1:

hello   (OPTION1)   123456   123456   123456
world   (OPTION1)   123456   123456   123456
foo     (OPTION1)   123456   123456   123456
bar     (OPTION1)   123456   123456   123456

Как удалить каждую строку после каждого первого слова в текстовом файле File1?

Вероятно, это будет связано с awk/sed/cat, но я не могу этого понять. Я все еще новичок в редактировании с помощью этих утилит - возможно, мой вопрос будет полезен другим.

Первые слова не предсказуемы (без подстановочных знаков), каждое первое слово уникально.


person user191960    schedule 20.10.2009    source источник


Ответы (6)


awk один лайнер:

awk '{ print $1 }' < inputfile > outputfile

sed один лайнер:

sed 's/^\([A-Za-z0-9]*\).*/\1/' < inputfile > outpufile
person Chris J    schedule 20.10.2009
comment
Обе команды добились результата, как и приведенные ниже. Awk кажется очень интересной утилитой. Спасибо Игорю и pavium за потраченное время, это очень ценно! - person user191960; 20.10.2009
comment
В любом случае нет необходимости перенаправлять входной файл. Обе программы принимают имена файлов в качестве аргументов. - person Dennis Williamson; 20.10.2009

зачем использовать эти инструменты даже после команды cut

cut -f1 -d"\t" filename
person Vijay    schedule 20.10.2009
comment
потому что вырезать просто вырезать и ничего больше. awk режет, greps, seds и считает, а также многое другое. - person ghostdog74; 20.10.2009
comment
cut делает одну вещь и делает это хорошо. - person Roadmaster; 14.07.2011

пытаться

awk '{print $1}' filename > filename2
person pavium    schedule 20.10.2009

Вы можете просто обрезать все, начиная с первого пробела:

sed '\s.*$//' <File1
person igor    schedule 20.10.2009

Или просто для удовольствия, вы можете сделать это с Perl

perl -ne '@a=split; напечатать "$a[0]\n"' ‹ файл

person Benj    schedule 20.10.2009

Чтобы удалить все после разделителя:

cut -f1 -d"\t" inputfile > outputfile

\t можно заменить любым другим разделителем (например, ;) в зависимости от вашего конкретного случая.

person mOna    schedule 11.02.2021