Согласно удалению цветов от вывода, Вы управляете, должен быть:
printf "\n$(tput setaf 6)| $(tput sgr0)$(tput setaf 7)Sourcing files...\033[m\n" |\
sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g" |tee install.log
w/o "-r"
sed "s/\x1B\[\([0-9]\{1,2\}\(;[0-9]\{1,2\}\)\?\)\?[mGK]//g"
Поскольку удобство обосновывает, что Вы могли также создать псевдоним в /etc/profile
alias stripcolors='sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g"'
w/o '-r'
alias stripcolors='sed "s/\x1B\[\([0-9]\{1,2\}\(;[0-9]\{1,2\}\)\?\)\?[mGK]//g"'
[Править]
С данным производит Вас, может проверить это собой:
#!/usr/bin/perl
while ($line=) {
$line =~ s/^[0-9a-f]+: //;
while ($line =~ s/([0-9a-f]{2})(?=[0-9a-f]{2}| )//) {
print chr(hex($1));
}
}
__DATA__
0000000: 1b5b 316d 1b5b 3333 6de2 9aa0 2020 5761 .[1m.[33m... Wa
0000010: 726e 696e 673a 201b 2842 1b5b 6d4e 6f20 rning: .(B.[mNo
0000020: 2f55 7365 7273 2f61 7077 2f2e 6261 7368 /Users/apw/.bash
0000030: 2066 6f75 6e64 2e21 0a found.!.
Вывод:
$ perl checkerbunny|xxd
0000000: 1b5b 316d 1b5b 3333 6de2 9aa0 2020 5761 .[1m.[33m... Wa
0000010: 726e 696e 673a 201b 2842 1b5b 6d4e 6f20 rning: .(B.[mNo
0000020: 2f55 7365 7273 2f61 7077 2f2e 6261 7368 /Users/apw/.bash
0000030: 2066 6f75 6e64 2e21 0a found.!.
$ perl checkerbunny|stripcolors|xxd
0000000: e29a a020 2057 6172 6e69 6e67 3a20 1b28 ... Warning: .(
0000010: 424e 6f20 2f55 7365 7273 2f61 7077 2f2e BNo /Users/apw/.
0000020: 6261 7368 2066 6f75 6e64 2e21 0a bash found.!.
find 10K_TIF -iname "*.tif"
И если вы хотите обработать каждый файл, например, найти тип содержимого файла
find 10K_TIF -iname "*.tif" -print0 | xargs -0 -n1 file
или вычислить md5sum
find 10K_TIF -iname "*.tif" -print0 | xargs -0 -n1 md5sum
Можно использовать find
:
find 10K_TIF -iname '*TIF'
Для того, чтобы обвести результаты и что-то сделать с каждым изображением, можно использовать:
find 10K_TIF -iname '*TIF' | while read tif; do echo "Found: $tif"; done
Вышеуказанное предполагает вменяемые имена файлов, без пробелов или странных символов. Если имена файлов могут содержать такие символы, используйте вместо этого:
find 10K_TIF -iname '*TIF' -print0 |
while IFS= read -r -d '' tif; do echo "Found: $tif"; done
Если вы хотите (только) перечислить все файлы * .tiff во всех подкаталогах с помощью bash
, проще всего использовать шаблон **
(globstar) :
shopt -s globstar
ls **/*.tiff
Вы можете использовать Найти
для поиска всех файлов и передача их в любую команду, вы хотите использовать с помощью
find 10K_TIF -iname "*.tif" -type f -print0 | xargs -0 -n1 <command>
, это поиск 10K_TIF
и Все подкаталоги, соответствующие всему, что заканчиваются .tif
(нечувствительны к регистру) и , является обычным файлом (т. Е. Каталоги, специальные файлы и символические ссылки, заканчивающиеся с .tif
.tif
.tif
.tif
не обрабатываются).
Если вы хотите обрабатывать, например, символические ссылки и обычные файлы, вы можете использовать
find 10K_TIF -iname "*.tif" \( -type f -o -type l \) -print0 | xargs -0 -n1 <command>