Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

159
Views
cómo especificar la cantidad de RAM a usar para un script en Linux

Digamos que quiero editar todos los archivos en una carpeta, cambiando cada encabezado. Estoy usando este script:

for cosa en $(ls $1); hacer sed -i '1c\SNP A2 A1 beta NP' $cosa hecha

El problema es que lleva mucho tiempo. Entonces, me gustaría encontrar una manera de dedicar más RAM para este script, para hacerlo rápidamente. ¿Es posible?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Me gustaría encontrar una manera de dedicar más RAM para este script, para hacerlo rápidamente. ¿Es posible?

No. Las herramientas que usa, bash para enumerar sus archivos y sed para editarlos, toman la memoria RAM que necesitan para hacer su trabajo. No pueden usar más RAM incluso si tuvieran una forma de dársela.

Puede ejecutar sus operaciones sed en paralelo. Esto usa más núcleos en su máquina y puede terminar más rápido. Ponga un carácter & después de cada comando en el ciclo. Algo como esto.

 for thing in $(ls $1); do sed -i '1c\SNP A2 A1 beta NP' $thing & done
over 4 years ago · Santiago Trujillo Report

0

Con GNU Parallel puedes controlar cuántos se ejecutan en paralelo:

 doit() { sed -i '1c\SNP A2 A1 beta NP' "$1" } export -f doit ls $1 | parallel -j5 doit

Ajuste -j5 hasta que encuentre el número que le proporcione el mayor rendimiento.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!