sort
tem opção --ignore-leading-blanks
:
-b, --ignore-leading-blanks
ignore leading blanks
Por que não sort
tem opção --ignore-trailing-blanks
(ignorar espaços em branco)?
$ sort --version
sort (GNU coreutils) 8.32
sort
tem opção --ignore-leading-blanks
:
-b, --ignore-leading-blanks
ignore leading blanks
Por que não sort
tem opção --ignore-trailing-blanks
(ignorar espaços em branco)?
$ sort --version
sort (GNU coreutils) 8.32
Estou executando a saída (com argumento adicional --version
) find
da seguinte maneira:
$ find NDK -name clang -executable -type f | xargs -I{} bash -c "exec {} --version"
Android (7714059, based on r416183c1) clang version 12.0.8
Funciona. No entanto, esta forma talvez seja abaixo do ideal.
Existe uma maneira correta/ótima de fazer isso?
No seguinte caso, as saídas de basename "$x"
e echo "${x##*/}"
não são diferentes:
$ x=xxx/yyy ; basename "$x" ; echo "${x##*/}"
yyy
yyy
Em quais casos (se houver) as saídas de basename "$x"
e echo "${x##*/}"
diferem?
O bash suporta substituição de variável na return
instrução?
De man bash
:
return [n]
Causes a function to stop executing and return the value specified by n to its caller.
É n
permitido ser uma substituição de variável?
Testei no seguinte exemplo:
$ cat t345.sh
f()
{
local x=13
return $x
}
f
echo $?
$ bash t345.sh
13
$ bash --version
GNU bash, version 5.2.21(1)-release (x86_64-pc-cygwin)
Aqui vemos que Bash não reclama return $x
e f
retorna 13.
Foi linkado isso o tempo todo OU desde qual versão o Bash começou a oferecer suporte a isso?
Estou tentando combinar qualquer caractere (exceto caracteres de quebra de linha) entre xxx<1+ whitespaces>"
e whitespace
.
O formato da string de entrada é o seguinte:
xxx<1+ whitespaces>"yyy<1+ whitespaces>zzz"
Eu tentei usar o seguinte PCRE:
$ echo 'xxx "yyy zzz"' | grep -Po '(?<=\xxx\s+").*?(?=\s)'
grep: lookbehind assertion is not fixed length
No entanto, como podemos ver, o PCRE não suporta lookbehind flutuante porque pode causar grandes problemas de desempenho .
Aqui está a solução alternativa:
$ echo 'xxx "yyy zzz"' | grep xxx | grep -Po '(?<=").*?(?=\s)'
yyy
Aqui vemos que funciona, porém, grep
é invocado duas vezes, o que pode ser considerado abaixo do ideal.
É possível obter o mesmo resultado, mas com apenas uma grep
invocação?
Se não, então é possível obter o mesmo resultado, mas com apenas uma <toolname>
(talvez awk
) invocação?
Estou tentando executar o comando que contém a variável string da variável string:
$ X="bash -c 'echo OK'" ; $X
OK': -c: line 1: unexpected EOF while looking for matching `''
Por que não funciona? Como consertar/fazer corretamente?
Observe que sou obrigado a executar o comando como $X
.
Observe que sou obrigado a executar echo OK
via bash -c
.
De man grep
:
-o, --only-matching
Print only the matched (non‐empty) parts of a matching line, with each such part on a separate output line.
Uma pergunta simples: como imprimir apenas as partes correspondentes (não vazias) de uma linha correspondente, com cada parte na mesma linha de saída?
Considere este cenário:
$ x=y
$ echo $x
y
$ x=@
$ echo $x
<newline>
Por que echo $x
imprime nova linha se x
for @
?
tenho .avi
arquivo:
$ ffprobe input.avi -hide_banner
Input #0, avi, from 'input.avi':
Duration: 00:01:08.05, start: 0.000000, bitrate: 182785 kb/s
Stream #0:0: Video: rawvideo, bgr24, 1060x615, 182915 kb/s, 20 fps, 20 tbr, 20 tbn
$ file input.avi
input.avi: RIFF (little-endian) data, AVI, 1060 x 615, 20.00 fps, video: uncompressed
Aqui vemos "rawvideo, bgr24".
Eu já tentei várias invocações de ffmpeg, mas não .mp4
pode ser reproduzido no aplicativo Fotos do Windows 10:
ou o .mp4
jogado incorretamente em algum outro jogador:
Nota: no entanto, o VLC funciona tão .mp4
bem.
Uma pergunta simples: como converter corretamente.avi
contendo "rawvideo, bgr24" para .mp4
(para que possa ser reproduzido corretamente em qualquer player)?
Eu tenho um notebook com Windows 10. Não consigo encontrar o carregador do laptop. Então, estou tentando lembrar quando o carregador do laptop foi conectado pela última vez. No Windows 10, é possível descobrir quando o carregador do laptop foi conectado pela última vez? Em outras palavras: o Windows 10 rastreia eventos de "carregador conectado/desconectado"?
Como alterar a ordem de classificação padrão na janela Abrir do Windows?
Exemplo: Paint => File => Open => /* need to order by date by default */
.
As operações git
demoram muito tempo tornando -as git
inutilizáveis.
Por exemplo, quando se faz git pull
(para atualizar o repositório local para o repositório mestre) Antimalware Service Executable
consome quase 90% da CPU e demora muito para concluir a git pull
operação.
Aqui estão as medições de tempo de execução de alguns outros git
comandos:
$ git status
...
7m31s
$ git stash save "xxx"
Saved working directory and index state On xxx: xxx
24m26s
$ git stash list
stash@{0}: xxx
23.9s
Versões de software:
OS: Windows 10 Pro (Version 10.0.18362 Build 18362).
$ /usr/bin/git --version
git version 2.21.0
Quanto a ssh
eu tenho (pelo menos) dois ssh
instalados. Ainda não sei qual (se houver) é usado por git
:
$ /bin/ssh -V
OpenSSH_8.2p1, OpenSSL 1.1.1f 31 Mar 2020
$ /cygdrive/c/Windows/System32/OpenSSH/ssh -V
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
Qual é o problema? Como resolver?
UPD. Eu já tentei parar (pelo menos temporariamente) Antimalware Service Executable
, mas Windows 10
não permite fazer isso mesmo que tenha Administrator
permissões.
Não é possível parar o serviço Antimalware Executável:
UPD1. Como sugeriu @harrymc, adicionei o caminho para a pasta do git
repositório por meio da Add or remove exclusions
opção. As git
operações ficaram mais rápidas, mas Antimalware Service Executable
ainda aparecem durante git
as operações e consomem cerca de 50% da CPU. Esse comportamento é Antimalware Service Executable
considerado normal?