2016-12-25 1 views
1

У меня есть текстовый файл с разделителями вкладок с некоторыми столбцами. для некоторых строк значение (которое является строкой) определенного столбца имеет обратную косую черту в конце этого, что вызывает проблему, пока я хочу импортировать эти данные в базу данных PostgreSQL. Я хочу удалить эту обратную косую черту с конца строкового значения этого столбца для всех строк, у которых она есть. Как я могу это сделать?Как удалить обратную косую черту с конца строкового значения столбца в текстовом файле, разделенном вкладкой?

, например, в этой строке, как вы видите есть обратную косые черты в конце второго колонке

862B25B3 Making Large-Scale Nystr{\ making large scale nystr 2010 2010  international conference on machine learning icml 465F7C62 19555 
+0

Данные теста были бы хороши. –

+0

Я добавил пример –

+0

@JamesBrown он игнорирует вкладки, когда я хочу вставить пример –

ответ

2

В AWK. Используйте sub для замены задней \ с "" (ничего) в конце вторых ($2) с разделителями табуляции (-F'\t') колонок:

$ awk -F'\t' -v OFS='\t' 'sub(/\\$/,"",$2)||1' foo 

Если \ может быть в конце любого поля, вам нужно `для» петли это:

$ awk -F'\t' -v OFS='\t' '{for(i=1;i<=NF;i++)sub(/\\$/,"",$i)}1' foo 
+0

кажется, что эта команда влияет на вкладки. после запуска этого для файла обратная косая черта была удалена, но вкладки между столбцами также были удалены! –

+0

О да, мой плохой. Я также не устанавливал 'OFS' для вкладок. –

3

с Сед, чтобы удалить обратную косую черту перед вкладке или в конце линии:

sed 's/\\\t/\t/g;s/\\$//' file