How can select apecific rows from text files
    1 Ansicht (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Furat Alobaidy
 am 23 Okt. 2019
  
    
    
    
    
    Kommentiert: Joe Vinciguerra
      
 am 24 Okt. 2019
            Hi , i have theses data sets as text file,
i need extract and save  specific rows only ( i need the rows that contains  the words  : ReadReq or  WriteReq , ( otherwise negleget all other rwos !)
example: i need extrect the rows contain on  the words inside its ( readReq or Writereq)  such as : 
3411151194500: system.cpu04.icache: ReadReq [380730:380733] IF hit state: 7 (E) valid: 1 writable: 1 readable: 1 dirty: 0 tag: 1c0
3411151194500: system.cpu04.dcache: WriteReq [a22a48:a22a4f] miss
from the original  text file :
3411151194500: system.cpu04.icache: ReadReq [380730:380733] IF hit state: 7 (E) valid: 1 writable: 1 readable: 1 dirty: 0 tag: 1c0
3411151194500: system.cpu04.dcache: createMissPacket: created ReadExReq [a22a40:a22a7f] from WriteReq [a22a48:a22a4f]
3411151194500: system.cpu04.dcache: WriteReq [a22a48:a22a4f] miss
3411151194500: system.cpu04.dcache: recvAtomic: Sending an atomic ReadExReq [a22a40:a22a7f]
3411151194500: system.cpu04.dcache: Block addr 0xa22a40 (ns) moving from state 0 to state: 7 (E) valid: 1 writable: 1 readable: 1 dirty: 0 tag: 511
I appriciate for any hepl please
1 Kommentar
  Guillaume
      
      
 am 23 Okt. 2019
				I'd recommend you go over the questions asked by this guy because I've answered several question of his that dealt with parsing log files very similar to yours.
Akzeptierte Antwort
  Joe Vinciguerra
      
 am 23 Okt. 2019
        % Read all your data into a cell array. 'Delimiter','' means to import
% everthing into one column, which I believe is better for your
% application.
data = readcell('data.txt','Delimiter','');
% Create a vector 'TF' that identifies logically which rows in 'data'
% contain the strings you identified. "|" represents the 'or' function. 
TF = contains(data,('WriteReq')) | contains(data,('ReadReq'));
% for every element of 'data' where TF is zero (false, i.e. doesn't contain
% either string) set that value to '[]' to delete it from the array.
data(TF == 0) = [];
5 Kommentare
  Joe Vinciguerra
      
 am 24 Okt. 2019
				Glad you got it working. If you're satisfied with this answer, please click the "accept" button.
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Logical finden Sie in Help Center und File Exchange
			
	Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

