Lista de comandos úteis¶
- Lista de comandos úteis
- 1. Operações de busca com o comando find
- 1.1 Procurar arquivos com o nome "run" na pasta atual em diante
- 1.2 Procurar arquivo com a extensão ".ksh" na pasta /etc
- 1.3 Procurar por links simbólicos na pasta atual em diante
- 1.4 Procurar por links simbólicos na pasta atual em diante, com saída formatada (indicando a origem e o destino do link)
- 1.5 Apagar todos os links simbólicos encontrados utilizando o comando xargs
- 1.6 Procurar todos os arquivos de nome "monitor.t" em pastas com nome sequencial formatado de "001" a "040", na pasta atual
- 1.7 Procurar todos os arquivos .ctl e testar se eles possuem o correspondente arquivo .idx. Caso os arquivos .idx não existam, o comando gribmap é invocado para criá-los a partir do arquivo .ctl
- 1.8 Procurar por diretórios vazios
- 1.9 Procurar por arquivos vazios
- 1.10 Procurar por links quebrados
- 2. Operações de pesquisa em arquivos com o comando grep
- 3. Operações com arquivos utilizando o comando awk
- 4. Operações com arquivos utilizando o comando sed
- 5. Criando uma sequência de números no shell com o comando seq
- 6. Operações com loops no shell
- 6.1 Imprimir a sequência de 1 a 30 utilizando o comando de laço for
- 6.2 Renomear todos os arquivos com extensão .txt adicionando uma nova extensão .dat
- 6.3 Alterar todos os arquivos com a extensão .TQ0213L042 para .T213L42, utilizando o for e o sed
- 6.4 Executar o comando cmp para todos os arquivos de uma lista
- 6.5 Aguardar até que um arquivo esteja disponível
- 6.6 Verifica se uma pasta existe; se não existir, cria, se existir sai do teste
- 6.7 Lê um lista chamada "lista" com os nomes das pastas que contém um script de submissão, dá permissão de execução e executa
- 6.8 Faz um loop em cima de datas; verifica se a primeira data é menor ou igual do que a segunda. Quando esta condição é alcançada, sai do loop
- 7. Comandos para visualização da quota do usuário
- 1. Operações de busca com o comando find
1. Operações de busca com o comando find¶
$ find <diretorio> -name "<expressao>"
Exemplos:
1.1 Procurar arquivos com o nome "run" na pasta atual em diante¶
$ find . -name "run"
1.2 Procurar arquivo com a extensão ".ksh" na pasta /etc¶
$ find /etc -name "*.ksh"
1.3 Procurar por links simbólicos na pasta atual em diante¶
$ find . type -l
1.4 Procurar por links simbólicos na pasta atual em diante, com saída formatada (indicando a origem e o destino do link)¶
$ find . -type l -printf "%p -> %l\n"
1.5 Apagar todos os links simbólicos encontrados utilizando o comando xargs¶
$ find . -type l | xargs rm -rf
1.6 Procurar todos os arquivos de nome "monitor.t" em pastas com nome sequencial formatado de "001" a "040", na pasta atual¶
$ for pasta in $(seq -f "%03g" 1 40); do echo $pasta; cd $pasta; if test ! -e monitor.t; then echo ">>> $pasta falhou"; fi; cd -; done
1.7 Procurar todos os arquivos .ctl e testar se eles possuem o correspondente arquivo .idx. Caso os arquivos .idx não existam, o comando gribmap é invocado para criá-los a partir do arquivo .ctl¶
$ for arqctl in `find . -name "*.ctl"`; do arqidx=`echo $arqctl | sed 's,ctl,idx,g'`; if test ! -e $arqidx; then echo "$arqidx falta"; gribmap -i $arqctl; fi; done
1.8 Procurar por diretórios vazios¶
$ find . -type d -empty
$ find . -type d -empty -name "NOME"
1.9 Procurar por arquivos vazios¶
$ find . -type f -empty
$ find . -type f -empty -name "NOME"
1.10 Procurar por links quebrados¶
$ find . -xtype l
2. Operações de pesquisa em arquivos com o comando grep¶
$ grep <opcoes> <expressao> <arquivo(s)>
Exemplos:
2.1 Pesquisa recursiva pela expressão "letkf" em todos os scripts ksh na pasta atual em diante¶
$ grep -R "letkf" *.ksh
2.2 Pesquisa recursiva pela exporessão "letkf" ou "LETKF" (ou uma mistura de maiúsculas/minúsculas) em todos os scripts ksh na pasta atual em diante¶
$ grep -iR "letkf" *.ksh
3. Operações com arquivos utilizando o comando awk¶
$ awk <opcoes> <comandos> <arquivo>
ou
$ cat <arquivo> | awk <opcoes> <comandos>
Exemplos:
3.1 Filtrando um arquivo com colunas separadas por espaços, mostrando apenas a coluna "n"¶
$ cat <arquivo> | awk -F " " '{print $n}'
3.2 Adicionando uma string antes da coluna "n"¶
$ awk '{print "coloque_aqui_a_sua_string-ela_pode_incluir_barras_/"$n}' arquivo
4. Operações com arquivos utilizando o comando sed¶
$ sed <opcoes> <comandos> <arquivo(s)>
ou
$ cat <arqvuivo> | sed <opcoes> <comandos>
Exemplos:
4.1 Substituindo todas as ocorrências da string "A" pela string "B" em todos os scripts .ksh (apenas na pasta atual)¶
$ sed -i "s,A,B,g" *.ksh
4.2 Comentando a linha "n" em um arquivo (comentário é dados por #)¶
$ sed -i 'ns/^/#/' <arquivo>
4.3 Inserindo um comentário na primeira linha de um arquivo¶
$ sed -i "1s/^/# Comentario/" > <arquivo>
5. Criando uma sequência de números no shell com o comando seq¶
$(seq <inicio> <fim>)
Exemplos:
5.1 Imprimir no shell a sequencia de 1 a 20¶
$ echo $(seq 1 20)
6. Operações com loops no shell¶
Comando for; do; done
Exemplos:
6.1 Imprimir a sequência de 1 a 30 utilizando o comando de laço for¶
$ for i in $(seq 1 30); do echo $i; done
6.2 Renomear todos os arquivos com extensão .txt adicionando uma nova extensão .dat¶
$ for i in `find . -name *.txt`; do mv ${i} ${i}.dat; done
6.3 Alterar todos os arquivos com a extensão .TQ0213L042 para .T213L42, utilizando o for e o sed¶
$ for arq1 in `ls *.TQ0213L042`; do arq2=`echo ${arq1} | sed "s,TQ0213L042,T213L42,g"`; cp ${arq1} ${arq2}; done
6.4 Executar o comando cmp para todos os arquivos de uma lista¶
$ for i in `ls *unf*`; do cmp $i /diretorio/arquivos/a/serem/comparados/$i; done
Comando until; do; done
Exemplos:
6.5 Aguardar até que um arquivo esteja disponível¶
$ until [ -e <arquivo> ]; do sleep .1s; done
Comando if; then; fi
Exemplos:
6.6 Verifica se uma pasta existe; se não existir, cria, se existir sai do teste¶
$ if test ! -s <pasta>; then mkdir -p <pasta>; fi
6.7 Lê um lista chamada "lista" com os nomes das pastas que contém um script de submissão, dá permissão de execução e executa¶
$ for i in `cat lista`; do cd $i; chmod +x qsub_interface.g2s.$i; ./qsub_interface.g2s.$i; cd -; done
Comando while; do; done
6.8 Faz um loop em cima de datas; verifica se a primeira data é menor ou igual do que a segunda. Quando esta condição é alcançada, sai do loop¶
$ while [ <data_inicio> -le <data_fim> ]; do <operacoes>; done
7. Comandos para visualização da quota do usuário¶
7.1 Verifica o espaço em disco ocupado (em Gigabytes) pelo usuário no disco scratchin¶
Comando lsf
Exemplos:
$ lfs quota -u $USER /scratchin/ | sed -n 3p | awk '{ print $2/1024/1024" Gb"}'
Referências Úteis: