Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
Shell Script
Last Updated: May 23 2020 10:15, Started by
AlexandruSD
, May 22 2020 17:37
·
0
#1
Posted 22 May 2020 - 17:37
Salutare. Am și eu nevoie de puțin ajutor Am primit o temă, făcând doar puțin script, și umblând foarte puțin cu linux, nu prea mă descurc. Trebuie să creez un script (în Ubuntu) prin care se care copiază la o cale separată doar fișierele în care un anumit utilizator a modificat mai mult de 20 de linii la o anumită dată.
Știu că pentru a copia un fișier în altă parte folosesc codul acesta: $ ls dir1/ dir2/ $ cp -r dir1/ dir1.copy $ ls dir1.copy dir2/ Dar cum aș putea face să verific dacă un utilizator a modificat mai mult de 20 de linii, într-un fisier (de ex un simplu txt, la data de astazi de exemplu). Vă mulțumesc anticipat (enorm)! |
#3
Posted 22 May 2020 - 18:53
Fișierele respective sunt salvate ca backup la editare/ modificare? Că altfel cum verifici diferențele?
|
#4
Posted 22 May 2020 - 18:56
Da... ar mai lipsi ceva?
shogun1, on 22 mai 2020 - 18:53, said:
Fișierele respective sunt salvate ca backup la editare/ modificare? Că altfel cum verifici diferențele? Cunosc: wc -l fisier1 //numara lini find ~/director -mtime –print mtime [+|-] (n) - specifica toate fisierele modificate in ultimele (n) zile; Probabil.. (si sigur) este cum spui, că altcumva nu ai putea verifica nr de linii.. Edited by Dany_Darke, 22 May 2020 - 19:54. |
#5
Posted 22 May 2020 - 19:10
shogun1, on 22 mai 2020 - 18:53, said:
Fișierele respective sunt salvate ca backup la editare/ modificare? Că altfel cum verifici diferențele? LE: nu folosesc Ubuntu, nu știu ce editor folosește (Gedit, nano), modifică un fișier local și vezi dacă după salvare/ închidere apare un nou fișier cu același nume și extensie .bak sau ~ (de exemplu fișierul test și test.bak sau test~). Dacă da poți verifica diferențele între cele 2 fișiere în terminal, îți vor fi afișate toate liniile modificate: diff --unchanged-line-format= --old-line-format= --new-line-format='%L' test test.bak |
#6
Posted 22 May 2020 - 19:13
Ca de obicei, problema nu e de scripting/shelling, ci tine de înțelegerea problemei/cerinței in sine.
|
#7
Posted 22 May 2020 - 20:01
@AlexandruSD.
Căutarea și listarea fișierelor modificate azi, să zicem din directorul /home/userul-tău/Desktop: find ~/Desktop -type f -newermt 2020-05-22 -ls Verificarea fișierelor să vezi numărul de linii modificate (ca să nu-ți înșire liniile direcționezi outputul în alt fișier și-i numeri liniile cu wc, te interesează numărul în sine): diff --unchanged-line-format= --old-line-format= --new-line-format='%L' test test.bak > test1 ; wc -l test1 Copierea fișierelor cu pricina o faci cu cp file1 file2 file3... filex destinație. Fără parametrul -r (-R, --recursive), acesta se folosește la directoare (foldere) pentru copierea sub-directoarelor și fișierelor din director! |
#8
Posted 22 May 2020 - 20:56
Iți mulțumesc enorm!
Ar fi necesar să pun un if .. sau ceva, după wc (trebuie doar fișierele cu 20 de rânduri)?.. Ca să creez programul este intr-un fișier executabil, este bine așa? $ vi tema.sh #!/bin/bash find ~/Desktop -type f -newermt 2020-05-22 -ls diff --unchanged-line-format= --old-line-format= --new-line-format='%L' test test.bak > test1 ; wc -l test1 cp test1 Mersi frumos, încă odată..! Edited by Dany_Darke, 22 May 2020 - 22:15. |
#9
Posted 23 May 2020 - 08:44
Ai testat acel executabil? Crează-ți un director în care să faci teste, crează câteva fișiere, le modifici câteva linii (la unele 2-3, alte 20-25 linii, cu ocazia asta verifici dacă editorul text folosit le face backup/ btw, Gedit parcă numește fișierele de backup nume-fișier.bak, nano nume-fișier~), testează comenzile pe rând, încearcă să faci un script în care să combini acele comenzi, șamd.
Eu ți-am dat comenzi care fac PAȘII pe care nu știai tu să-i faci în Linux (aflarea fișierelor modificate la data precizată, aflarea numărului de linii modificate), la modul generic, tu trebuie să faci acum o funcție bash care să le combine și să facă ce se dorește. Și da, cred că va trebui să folosești if, then, dar asta va trebui să faci singur. Documentează-te puțin. https://www.gnu.org/...#Context-Format |
#10
Posted 23 May 2020 - 10:15
shogun1, on 23 mai 2020 - 08:44, said:
Ai testat acel executabil? Crează-ți un director în care să faci teste, crează câteva fișiere, le modifici câteva linii (la unele 2-3, alte 20-25 linii, cu ocazia asta verifici dacă editorul text folosit le face backup/ btw, Gedit parcă numește fișierele de backup nume-fișier.bak, nano nume-fișier~), testează comenzile pe rând, încearcă să faci un script în care să combini acele comenzi, șamd. Eu ți-am dat comenzi care fac PAȘII pe care nu știai tu să-i faci în Linux (aflarea fișierelor modificate la data precizată, aflarea numărului de linii modificate), la modul generic, tu trebuie să faci acum o funcție bash care să le combine și să facă ce se dorește. Și da, cred că va trebui să folosești if, then, dar asta va trebui să faci singur. Documentează-te puțin. https://www.gnu.org/...#Context-Format |
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users