Баш для усечения - PullRequest
       0

Баш для усечения

0 голосов
/ 28 февраля 2012

Мне нужно внести изменения в документ, в котором две колонки разделены табуляцией (\ t), а каждая запись - новой строкой \ n.утверждения документа следующие:

  /something/random/2345.txt

моя цель состоит в том, чтобы удалить всю строку и просто сохранить число 2345 в этом случае. Я использовал

 sed 's/something/random//g' file.csv 

, но я делаюне знаю, как избежать / вызвать sed синтаксис имеет / тоже.Также не все записи имеют одинаковые слова, поэтому я хотел бы найти регулярное выражение типа

  /*/*.*

Но каждая запись имеет номер как часть записи, и я хотел бы извлечь это.Также есть несколько записей, которые не содержат никакого номера, я хотел бы удалить эти записи вместе с соответствующей записью в следующем столбце для этой записи.Файл в формате CSV.

Ответы [ 2 ]

2 голосов
/ 28 февраля 2012

Вы можете избежать косой черты с помощью обратной косой черты, или вы можете использовать другой символ, чем косая черта, чтобы отделить выражение.Заметьте:

echo foobar | sed sIfooIcrowI
> crowbar

Конечно, вы не должны использовать буквенный символ для разделителя.Я просто использую его здесь, чтобы подчеркнуть, что почти любой нормальный символ может быть заменен на косую черту.

0 голосов
/ 28 февраля 2012

Вы можете просто удалить все нецифровые символы из каждого выражения в строке:

   sed 's/[^0-9]*\(.*\)[\t]*/\1/g'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...