2015-01-15 3 views
1

Хорошо, так что у меня есть большой ол»бить выход искателя метки из Audacity, который выглядит следующим образом:Удалить дубликат строки в нескольких строках

25.651000   25.651000 
25.666000   25.666000 
25.685000   25.685000 
25.718000   25.718000 
25.737000   25.737000 
26.244000   26.244000 
27.050425   27.052000 
27.853000   27.853000 
27.867000   27.867000 
28.674000   28.674000 

Однако, как вы можете видеть Audacity решил дублировать первый столбец дважды , Тем не менее, я не хочу эту вторую колонку. Есть ли способ удалить этот второй столбец, оставляя меня с чем-то вроде этого?

25.651000 
25.666000 
25.685000 
25.718000 
25.737000 
26.244000 
27.050425 
27.853000 
27.867000 
28.674000 

Существует около 186 строк.

+1

Простой вырез или awk. – anubhava

+0

У вас есть одно место перед вашими данными или значение начинается с начала строки? – Jotne

+0

Извините, не случайно случайно добавлено, что при форматировании всего. Исправлена. – ArchBlox

ответ

4

Это должно сделать это за вас;

cut -f 1 -d ' ' MyFile.txt

Результаты в:

 
25.651000 
25.666000 
25.685000 
25.718000 
25.737000 
26.244000 
27.050425 
27.853000 
27.867000 
28.674000 
+0

Это работает! Большое спасибо, оцените. – ArchBlox

+1

Вы не должны использовать 'cat' с программами, которые могут сами считывать данные. Это замедляет работу, использует больше ресурсов, потери функциональности. Итак, 'cut -f 1 -d '' MyFile.txt'. Вы не создаете вывод, который у вас есть из приведенных выше данных, просто пустые строки, так как OP имеет место перед его данными в примере выше. – Jotne

+0

@ Обновлено за ваши комментарии. Хотя OP сказал, что он хорош. :) – AlG

3

Это должно сделать:

awk '$0=$1' MyFile.txt 
25.651000 
25.666000 
25.685000 
25.718000 
25.737000 
26.244000 
27.050425 
27.853000 
27.867000 
28.674000 

Это более безопасно, как таковой Eds комментарий.

awk '{print $1}' MyFile.txt 
+0

Это первое не удастся, если $ 1 оценивается численно до нуля (например, '00.000000'). –

2

С GNU Grep:

grep -oP ' \K[^ ]+' file 

Выход:

 
25.651000 
25.666000 
25.685000 
25.718000 
25.737000 
26.244000 
27.052000 
27.853000 
27.867000 
28.674000 
1

Существует sed для вас:

sed 's/\(^.*\) .*$/\1/' file 
+0

перемещать пробел за пределами группы, он не является частью значения – NeronLeVelu

+0

он будет работать в его случае в любом случае – tinySandy

+0

вправо, он просит удалить дубликат, чтобы не иметь ни одного чистого значения. У вас есть точка – NeronLeVelu

2
sed 's/ .*//' YourFile 

г что-нибудь с первого места до конца

+0

+ одна. Хорошая идея – Cyrus

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