Могу ли я тестировать облако Ubuntu в VirtualBox?

В этом ответе:

bash + xargs однострочный python однострочный Ruby однострочный

1. bash + xargs version.

$> cat input_file.txt  | xargs -L 1 bash -c 'for i; do : ; done ; echo $1;echo $i' bash 

Это по существу дает каждой строке bash как аргументы командной строки, цикл, пока мы не получим последний, и выведем их.

] Демонстрация:

$> cat input_file.txt                                                                     
UniRef90_Q8YC41 Putative binding protein BMEII0691 MNRFIAFFRSVFLIGLVATAFGRACA
UniRef90_Q8YC41 Putative binding protein BMEII0691 MNRFIAFFRSVFLIGLVATAFGRACA
$> cat input_file.txt  | xargs -L 1 bash -c 'for i; do : ; done ; echo $1;echo $i' bash   
UniRef90_Q8YC41
MNRFIAFFRSVFLIGLVATAFGRACA
UniRef90_Q8YC41
MNRFIAFFRSVFLIGLVATAFGRACA

Еще более короткая версия:

$> cat input_file.txt  | xargs -L 1 bash -c 'echo $1;echo ${@: -1}' bash                  
UniRef90_Q8YC41
MNRFIAFFRSVFLIGLVATAFGRACA
UniRef90_Q8YC41
MNRFIAFFRSVFLIGLVATAFGRACA

2. python однострочный

Этот one-liner собирает список строк, которые в основном являются первым словом + новой строкой + последним словом. Наконец, он печатает все элементы списка, как одну строку, соединенную с новой строкой.

python -c 'import sys ; print "\n".join([ l.split()[0] + "\n" + l.split()[-1]  for l in sys.stdin ])' < input_file.txt

Демонстрация использования:

$ python -c 'import sys ; print "\n".join([ l.split()[0] + "\n" + l.split()[-1]  for l in sys.stdin ])' < input_file.txt
UniRef90_Q8YC41
MNRFIAFFRSVFLIGLVATAFGRACA
UniRef90_Q8YC41
MNRFIAFFRSVFLIGLVATAFGRACA

3. Ruby one liner

В этом одном лайнере флаг -n работает как цикл while gets . . . end. $_ содержит значение каждой прочитанной строки, поэтому для каждой строки мы разбиваем ее на массив слов, а затем печатаем первый и последний.

$ ruby -ne 'words=$_.split(); puts words[0],words[-1]' < input_file.txt                   
UniRef90_Q8YC41
MNRFIAFFRSVFLIGLVATAFGRACA
UniRef90_Q8YC41
MNRFIAFFRSVFLIGLVATAFGRACA
2
задан 24 November 2011 в 23:02

0 ответов

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

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