считайте первый элемент в массиве

[119923]В кавычках или двойных кавычках следует поставить два аргумента:

scp my_log-bin.0139[3-9][0-9] root@192.168.103.66:/backup/
1
30.01.2015, 14:36
2 ответа

Вы можете просто вывести вторую строку. Для этого можно использовать множество инструментов:

  • sed

     значения по умолчанию read -g AppleLanguages ​​| sed -n '2s /, // p;' файл 
     

    Объяснение : 2 означает «выполнять следующие команды только во второй строке». -n подавляет нормальный вывод (ничего не печатается, если это явно не указано).Подстановка ( s /// ) удаляет запятую, а / p в конце выводит строки, в которых произошла подстановка.

  • perl

     по умолчанию читает -g AppleLanguages ​​| perl -ne 's /, // && print if $. == 2' 
     

    Explanation : Удалите первую запятую ( s /, // ) и напечатайте строка, если текущий номер строки ( $. равен 2. -n означает «построчно прочитать входной файл и применить сценарий, заданный -e ] в каждую строку.

  • Инструменты Unix

     по умолчанию read -g AppleLanguages ​​| head -n 2 | tail -n 1 | tr -d, 
     

    Explanation : head -n 2 печатает две первые строки, tail -n 1 печатает последнюю (следовательно, вторую в файле) и tr -d, удаляет запятые.

  • awk

     по умолчанию read -g AppleLanguage | awk 'NR == 2 {sub (",", ""); print}' 
     

    Пояснение: NR == 2 { } означает «запускать то, что указано в скобках, только во второй строке. gsub (", "," ") удаляет первую запятую.

3
27.01.2020, 23:17

Вы можете сделать следующее:

awk -F, '/[^(]/{print $1;exit}'

Пояснение:

  • -F,: относиться к , как к разделителю полей
  • .
  • [^(]: для строк, которые содержат по крайней мере один не( символ.
  • распечатайте $1; exit: распечатайте первое поле и немедленно выйдите из awk (таким образом, будет распечатана только первая строка, которая соответствует шаблону)
2
27.01.2020, 23:17

Теги

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