2016-12-23 3 views
0

Я нашел несколько небольших сообщений, предлагающих решения с использованием awk и sed, но ни один из них, похоже, не выполняет эту работу. Либо удаляется вся строка, либо вообще ничего не удаляется. Я тоже не командная строка wizzard, и мои знания немного ограничены, поэтому я решил обратиться за помощью сюда. Это не имеет значения, есть ли awk, grep, sed ... В этом случае я, честно говоря, не могу иметь никакого значения, так что это будет то, что вы чувствуете в этом случае.Как удалить слово из текстового файла, содержащего X количество символов?

Что у меня есть несколько файлов с нескольких миллионов строк, а файлы/линии выглядят примерно так:

50somethingcharactergibberish shortrword 
50somethingcharactergibberish shortrword 
50somethingcharactergibberish shortrword 
50somethingcharactergibberish shortrword 
50somethingcharactergibberish shortrword 
50somethingcharactergibberish shortrword 

И это идет на несколько миллионов строк. Мне нужно сделать, чтобы удалить 50somethingcharactergibberish и оставить только короткий. Проблема также в том, что нет шаблона, длинное слово, о котором идет речь, иногда начинается с буквы, а иногда и с номером. Поэтому я предполагаю, что мне придется посчитать персонажей в конце концов.

+0

Всегда ли есть только два таких слова во всех строках в файле? – Inian

+0

Благодарим вас за ответ Inian. Да, на каждой строке есть только слова. Между первым и вторым словом есть одно пространство. В противном случае то же самое миллион раз. – mrBlob

ответ

0

Самый минимальный awk, которые могли бы работать для вас что-то вроде: -

awk '!($1="")' million-line-file 
+0

Спасибо большое! Это было именно то, что я искал :) Я принял ваш ответ, но он не отмечен, потому что у меня низкая репутация. Но, как я уже сказал, это было решение, которое я искал. Еще раз спасибо! – mrBlob

+0

@mrBlob: прочитайте [Что это значит, когда ответ «принят»?] (Http://stackoverflow.com/help/accepted-answer) – Inian

+1

Спасибо, Я, по-видимому, голосовал вместо того, чтобы принимать его. Это принято сейчас! :) – mrBlob

0

AWK является излишеством для этого попробуйте cut

cut -f2 -d ' ' 2col.list > 2ndcol.list 

говорит cut второе поле -f2 рассматривает пространство, чтобы быть полевой разделитель -d ' ' для каждой строки во входном файле и перенаправить это второе поле в выходной файл

Смежные вопросы