Articles of shell

Imprimir la diferencia de column1 si los valores de column2 son los mismos

Tengo un file como este: 19:32:19 4599544 19:32:22 4599544 19:33:07 4599545 19:33:11 4599545 19:33:58 4599546 19:34:01 4599546 La primera columna es el time (hh: mm: ss). Si los valores de la segunda columna son iguales. Necesito imprimir la diferencia de los valores de column1 … es decir, necesito un resultado como este: – 3 4599544 […]

¿Por qué el resultado de esto para y while es diferente?

Tengo un bucle for: for host in $(cat ./hosts) do echo -e "$host" ssh -o "StrictHostKeyChecking no" $host "uptime" 2>/dev/null echo -e "\n" done y un ciclo while que se supone que es exactamente el mismo trabajo que el ciclo de arriba para: while read host do echo -e "$host" ssh -o "StrictHostKeyChecking no" $host […]

Usar comillas dobles o sin comillas con comodines

Encontré este artículo que intenta explicar el command find. Da un ejemplo de find /tmp -iname "data*.txt" ahora este artículo aquí dice que Las comillas dobles no suprimen la sustitución de palabras que comienzan por "$", pero suprimen la expansión de caracteres comodín. También cuando probé los dos commands admin@localhost Downloads$ ls gallifrey-road-doctors-14437-1366×768.jpg mydir admin@localhost […]

¿Cómo agrego algo al final de "}" si un patrón coincide?

Si tengo algo que se parece a esto: hello {sdsdsdsds} pattern {askjdasjkdjasd} hello {siadsd} pattern {iuewer} Entonces, si el patrón se corresponde antes de {*} , necesito agregar un ; . Salida: hello {sdsdsdsds} pattern {askjdasjkdjasd}; hello {siadsd} pattern {iuewer}; Y esta es solo una línea, sí. Ahora, pensé en algo como esto: 's{.*}/ Pero […]

Extrayendo la list de patrones que salen de otro command

Puedo extraer la list de patrones usando el siguiente command fgrep -A 1 -f patternlist.txt filename.fasta pero, ¿hay alguna manera de extraerlo sin crear otro file (patternlist.txt en este caso) desde la salida de otro command? Como: cut -d " " Cell_cycle.txt -f 1 | grep …???… filename.fasta EDITAR: El Cell_cycle.txt se ve así: $ […]

script de shell untar

Tengo un directory en el que hay varios files tar como tweets10_1.tar tweets10_2.tar tweets10_8.tar ahora quiero deshacer estos files y mantenerlos en una estructura de directorys como 10_1 10_2 10_8 He hecho un script de shell #!/bin/bash for string in `ls` ; do if [ $string == tweets10_*.tar*]; then length=${#string} folder=${string:6:$length-10} mkdir /mnt/filer01/round2/twitter/$folder tar -xvf […]

Cómo cambiar el nombre del file en el script bash uno por uno

Tengo muchos files que se ven así: data1.csv data2.csv . . data(n).csv Mi caso de uso es que cuando llame a mi script cambiará data1.csv to data.csv y los files restantes tal como están y la próxima vez que llame a mi script por segunda vez, moverá data1.csv a la carpeta procesada y cambiará data2.csv […]

¿Por qué grep '\ ;.' expandir a grep '\' '\;.' \ '' 'cuando se ejecuta sobre ssh?

$cat test.sh ssh HOST -l root -o StrictHostKeyChecking=no -q "/bin/bash -l -c /bin/env | grep -w PATH | grep '\;.'" $bash -x test.sh + ssh HOST -l root -o StrictHostKeyChecking=no -q '/bin/bash -l -c /bin/env | grep -w PATH | grep '\''\;.'\'''

haciendo un bucle en un command sin esperar la primera ejecución

Quiero una mejor manera de hacerlo, principalmente para el uso de la command-line: while sleep 60; do mysql -e 'show processlist'; done Esto es mejor que: while mysql -e 'show processlist'; do sleep 60; done … porque si ctrl-c un ctrl-c , se detiene. Sin embargo, la primera versión espera un minuto antes de la […]

Conmutación de shells para un trabajo cron

Digamos que tengo lo siguiente en mi crontab : * * * * * command1 -option A; command2; command3; etc. Me gustaría que cron ejecute los commands que tengo en esa línea con un shell específico. ¿Cómo puedo hacer eso? Sé que técnicamente podría poner estos commands en un file, agregar el shebang correspondiente, y […]