Как извлечь подстроку для каждого столбца файла в Bash? - PullRequest
0 голосов
/ 25 февраля 2012

Учитывая текстовый файл с именем file, как это:

AAA 3/4 2/2 3/5 
BBB 3/4 2/3 3/3 6/7 
CCC 4/4 7/9

Что я должен сделать, чтобы получить только числитель каждой дроби?как следующие:

AAA 3 2 2
BBB 3 2 3 6
CCC 4 7

Спасибо.

Ответы [ 3 ]

4 голосов
/ 25 февраля 2012
$> cat text
AAA 3/4 2/2 3/5 
BBB 3/4 2/3 3/3 6/7 
CCC 4/4 7/9

Идея состоит в том, чтобы соответствовать любой дроби и получать только числитель от каждой. Итак, дробь составляет (числа) / (числа) . Используя группы, легко получить то, что вы хотите.

$> sed -r -e 's/([0-9]*)\/([0-9]*)/\1/g' ./text
AAA 3 2 3 
BBB 3 2 3 6 
CCC 4 7
0 голосов
/ 25 февраля 2012

Это может работать для вас:

sed 's/\/[0-9]*//g' file
AAA 3 2 3 
BBB 3 2 3 6 
CCC 4 7
0 голосов
/ 25 февраля 2012

Попробуйте использовать awk , sed или lex программу.

Редактировать: удаление UUOC согласно комментариям.

...