Что ж, посмотрим:
1 )командаmkdir -p playground/dir-{00{1..9},0{10..99},100}
Вы просто создаете 100 каталогов в playground/
, каждый из них в следующем формате :dir-xxx
, где xxx
— цифры. По {00{1..9},0{10..99},100}
вы говорите 3 вещи:
00x
, где x
от 1 до 9, это 00{1..9}
часть его 0xx
, где xx
от 10 до 99, это0{10..99}
2 )когда у вас есть все каталоги из 1 ), то вы запускаете команду touch
Вы просто касаетесь файлов в следующем формате file-x
, где x
— один символ из диапазона A -Z. Этой частью {00{1..9},0{10..99},100}
вы просто говорите, что хотите коснуться файлов в те каталоги, созданные в 1 ). Как видите, часть в фигурных скобках такая же, как и в команде mkdir
.
Надеюсь, это поможет. Если вы хотите узнать немного больше о расширении скобок, вы можете прочитать, например, это:https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html
Просто используйте awk:
awk '/^startswith/{ sub(/(endswith)?$/,"endswith") } 1' /path/to/file
Использование Raku (, ранее известного как Perl _6)
raku -pe 's/ (^^ header \s.* $$) /$0 trailer/ unless /trailer $$/;'
Пример ввода:
header 0123456789
header 0123456789 trailer
none 0123456789 trailer
none 0123456789
Пример вывода:
header 0123456789 trailer
header 0123456789 trailer
none 0123456789 trailer
none 0123456789
https://docs.raku.org/syntax/s$SOLIDUS$SOLIDUS$SOLIDUS
https://raku.org