Печать первой колонки

Выполнение параллельных операций становится все более важным, поэтому я рекомендую:

parallel mv {} {.}.jpg ::: *.JPG

Эта утилита по умолчанию не установлена.

5
задан 16 May 2017 в 10:32

12 ответов

Я вижу, что ваши столбцы ограничены двумя пробелами.

, поэтому с awk:

awk -F '\\s\\s' '{print $1}'
13
ответ дан 22 May 2018 в 22:34
  • 1
    Ravexina thankyou так много запросов решается. – Rhea 16 May 2017 в 12:41
  • 2
    Добро пожаловать, вы можете принять ответ, если считаете его правильным;) – Ravexina 16 May 2017 в 12:44

Я вижу, что ваши столбцы ограничены двумя пробелами.

, поэтому с awk:

awk -F '\\s\\s' '{print $1}'
13
ответ дан 18 July 2018 в 13:13

Я вижу, что ваши столбцы ограничены двумя пробелами.

, поэтому с awk:

awk -F '\\s\\s' '{print $1}'
13
ответ дан 24 July 2018 в 20:07

Поскольку это, кажется, столбец фиксированной ширины, вы можете просто cut соответствующие символы. Самый широкий столбец Alanine, aspartate and glutamate metabolism имеет ширину 44 символа, поэтому:

$ cut -c1-44 foo
ABC transporters
Alanine, aspartate and glutamate metabolism
alpha-Linolenic acid metabolism
Aminoacyl-tRNA biosynthesis
Amino sugar and nucleotide sugar metabolism
Arachidonic acid metabolism
14
ответ дан 22 May 2018 в 22:34
  • 1
    Насколько я вижу, это приведет к тому, что выход будет дополнен до 44 символов. – ThePadawan 16 May 2017 в 14:03
  • 2
    Если вы хотите отключить заднее белое пространство, вы можете пропустить выход через что-то вроде grep -oe '^.*\S' или sed -re 's/\s+$//'. Затем вы можете сделать все это за один шаг: grep -oEe '^.{,43}\S' foo – David Foerster 16 May 2017 в 18:22

Поскольку второй столбец, очевидно, повторяет начало первого столбца, я беру это как критерий разреза с sed, поэтому он не зависит от ширины столбца:

sed 's/^\(.*\)\(.*\) \1$/\1\2/'

pattern - это повторяющаяся часть, обратная ссылка как \1 в конце строки. Вы можете добавить ;s/ *$//, чтобы удалить конечные пробелы, если они вас беспокоят.

2
ответ дан 22 May 2018 в 22:34

Основываясь на ответе Муру на то, что столбец задан с фиксированной шириной, команда egrep с опцией -o позволит вам печатать только согласованные (непустые) части соответствующей строки, заданной шаблоном поиска. По умолчанию, однако, будет напечатана целая строка.

$ egrep -o "^.{44}" foo
1
ответ дан 22 May 2018 в 22:34

Основываясь на ответе Муру на то, что столбец задан с фиксированной шириной, команда egrep с опцией -o позволит вам печатать только согласованные (непустые) части соответствующей строки, заданной шаблоном поиска. По умолчанию, однако, будет напечатана целая строка.

$ egrep -o "^.{44}" foo
1
ответ дан 18 July 2018 в 13:13

Поскольку это, кажется, столбец фиксированной ширины, вы можете просто cut соответствующие символы. Самый широкий столбец Alanine, aspartate and glutamate metabolism имеет ширину 44 символа, поэтому:

$ cut -c1-44 foo ABC transporters Alanine, aspartate and glutamate metabolism alpha-Linolenic acid metabolism Aminoacyl-tRNA biosynthesis Amino sugar and nucleotide sugar metabolism Arachidonic acid metabolism
14
ответ дан 18 July 2018 в 13:13

Поскольку второй столбец, очевидно, повторяет начало первого столбца, я беру это как критерий разреза с sed, поэтому он не зависит от ширины столбца:

sed 's/^\(.*\)\(.*\) \1$/\1\2/'

pattern - это повторяющаяся часть, обратная ссылка как \1 в конце строки. Вы можете добавить ;s/ *$//, чтобы удалить конечные пробелы, если они вас беспокоят.

2
ответ дан 18 July 2018 в 13:13

Основываясь на ответе Муру на то, что столбец задан с фиксированной шириной, команда egrep с опцией -o позволит вам печатать только согласованные (непустые) части соответствующей строки, заданной шаблоном поиска. По умолчанию, однако, будет напечатана целая строка.

$ egrep -o "^.{44}" foo
1
ответ дан 24 July 2018 в 20:07

Поскольку это, кажется, столбец фиксированной ширины, вы можете просто cut соответствующие символы. Самый широкий столбец Alanine, aspartate and glutamate metabolism имеет ширину 44 символа, поэтому:

$ cut -c1-44 foo ABC transporters Alanine, aspartate and glutamate metabolism alpha-Linolenic acid metabolism Aminoacyl-tRNA biosynthesis Amino sugar and nucleotide sugar metabolism Arachidonic acid metabolism
14
ответ дан 24 July 2018 в 20:07
  • 1
    Насколько я вижу, это приведет к тому, что выход будет дополнен до 44 символов. – ThePadawan 16 May 2017 в 14:03
  • 2
    Если вы хотите отключить заднее белое пространство, вы можете пропустить выход через что-то вроде grep -oe '^.*\S' или sed -re 's/\s+$//'. Затем вы можете сделать все это за один шаг: grep -oEe '^.{,43}\S' foo – David Foerster 16 May 2017 в 18:22

Поскольку второй столбец, очевидно, повторяет начало первого столбца, я беру это как критерий разреза с sed, поэтому он не зависит от ширины столбца:

sed 's/^\(.*\)\(.*\) \1$/\1\2/'

pattern - это повторяющаяся часть, обратная ссылка как \1 в конце строки. Вы можете добавить ;s/ *$//, чтобы удалить конечные пробелы, если они вас беспокоят.

2
ответ дан 24 July 2018 в 20:07

Другие вопросы по тегам:

Похожие вопросы: