Macbook Ubuntu Server: как я могу выключить экран, когда крышка закрыта (но не отключать сервер)?

awk решение:

$ a="Text1 somethingAA0123456something,elseAA9876543foo text1"
$ awk -F"[ ,]" '{match($2,/(AA[0-9]{7})/,a);match($3,/(AA[0-9]{7})/,b);print $1,a[1],",",b[1],$NF}' <<<"$a"
Text1 AA0123456,AA9876543 text1

Также это работает:

$ awk '{match($0,/(\w+\s)(\w+)(\w\w[0-9]{7})(\w+,\w+)(\w\w[0-9]{7})(\w+\s)(\w+)/,a);print a[1],a[3],",",a[5],a[7]}' <<<"$a"

ОБНОВЛЕНИЕ
Для ваших новых требований и с GNU awk вы можете использовать что-то вроде этого:

$ echo "$b"
Text1 somethingAA1111111something,elseAA2222222fooblahAA3333333^blahblahAA4444444 text1
Text2 somethingAA1111111something,elseAA7777777fooblahAA5454545^blah text2
Text3 somethingAA1111111something,elseAA2222222foo text3

$ awk '{gsub(/(AA[0-9]{7})/," & ",$2)}1' <<<"$b" |awk '{printf("%s ",$1);for (i=2;i<NF;i++) {if($i ~ /AA[0-9]+/) printf("%s%s",$i,(i==NF-1)?" ":",")}}{printf(" %s\n",$NF)}'
Text1 AA1111111,AA2222222,AA3333333,AA4444444  text1
Text2 AA1111111,AA7777777,AA5454545, text2
Text3 AA1111111,AA2222222, text3

Единственная ловушка, которая есть лишняя запятая в некоторых записях после последнего AAXXXXXXX . Надеюсь, это не большая проблема.

Это решение объединяет два файла awk. Первый awk преобразует каждую строку, вставляя пробел перед и после каждого найденного AAXXXXXXX:

$ echo "$a"
Text2 somethingAA1234567something,elseAA0987654fooblahAA3333333^blah text2
$ awk '{gsub(/(AA[0-9]{7})/," & ",$2)}1' <<<"$a"
Text2 something AA1234567 something,else AA0987654 fooblah AA3333333 ^blah text2

Эти преобразованные записи затем передаются второму awk, который печатает первое поле, последнее поле и промежуточные поля, которые соответствуют шаблон AAXXXXXXX

1
25.05.2017, 01:25
1 ответ

Для этого есть консольная команда:

# setterm -blank force
0
28.01.2020, 00:55

Теги

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