Visit The New, Modern Unix Linux Community


Help with grep to show date/time of file


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Help with grep to show date/time of file
# 1  
Help with grep to show date/time of file

Hi,


This is similar to what's been asked in the post below:

grep to show date/time of file the string was found in.


The solution sort of work / not work, the problem is if there is no match, then xargs does a full listing. That is if it found file/s that matches the search string and hence file exist, it does list the files but if it doesn't find a match it do a full listing instead Smilie


See example below:


Code:
$: ls -ltr
total 16
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file1
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file2
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file3
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file4
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file5
-rw-r-----   1 tester   omg            15 Mar 19 09:36 corrupt.txt
$: grep -il "bad" * | xargs ls -l
-rw-r-----   1 tester   dba           15 Mar 19 09:36 corrupt.txt
$: grep -il "corrupt" * | xargs ls -l
total 16
-rw-r-----   1 tester   omg            15 Mar 19 09:36 corrupt.txt
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file1
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file2
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file3
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file4
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file5
$: uname -a
SunOS [hostname] 5.11 11.3 sun4v sparc sun4v
$: cat corrupt.txt
BAD FILE FOUND

And just realized I can just actually just do ls -l but it gave me the same behaviour:


Code:
$: ls -l `grep -il "bad" *`
-rw-r-----   1 tester   omg            15 Mar 19 09:36 corrupt.txt
$: ls -l `grep -il "corrupt" *`
total 16
-rw-r-----   1 tester   omg            15 Mar 19 09:36 corrupt.txt
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file1
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file2
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file3
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file4
-rw-r-----   1 tester   omg            0 Mar 19 09:36 file5

I guess this is the expected behavior but kinda hoping it'll just do nothing if it doesn't find any or print something maybe instead? Any suggestion?
# 2  
No surprise. If the grep "command substitution" delivers the "empty" value, ls-l uses the default: . . man ls:
Quote:
DESCRIPTION
List information about the FILEs (the current directory by default).
Add a certainly non-existent file name (difficult to find, as there are almost no restrictions on file names), and suppress stderr output:

Code:
ls -l $(grep -il "corrupt" *) FALSE 2>/dev/null


EDIT: or, check the grep result upfront, and just don't call ls if empty...

Last edited by RudiC; 03-18-2020 at 06:33 PM..
This User Gave Thanks to RudiC For This Post:
# 3  
Thanks for the explanation

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #130
Difficulty: Easy
The original Unix code was developed by AT&T.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Show file name included time information

Hi all, I have many files included time information, some of them included time range by 30 minutes; 2007-12-27T110000.txt 2007-12-27T120000.txt 2007-12-27T130000.txt 2007-12-27T150000.txt 2007-12-27T153000.txt 2007-12-28T000000.txt 2007-12-28T003000.txt I only want to echo that... (5 Replies)
Discussion started by: jeo_fb
5 Replies

2. UNIX for Advanced & Expert Users

Grep show file name once

I am using grep as follows grep --include \*.org -ir "sunspot" -C 3 ./astron_aphys/solarsy/sun/helioseism/localhs/fhankel/ This gives me the filename for each matched line. How can I change the command to print the file name only once rather than having the same file name repeated at... (2 Replies)
Discussion started by: kristinu
2 Replies

3. UNIX for Dummies Questions & Answers

Does 'grep' update a file's access date/time?

I've got a job that finds and removes trace files based upon an access time of more than seven days (I've also tried a modify date). find TABC* -atime +7 -exec rm + find TABC* -mtime +7 -exec rm + Whether I use -atime or -mtime, the process seems to work sporadically. Sometimes it removes... (6 Replies)
Discussion started by: Scottie1954
6 Replies

4. Shell Programming and Scripting

Grep into a file + show following lines

Hi guys, This is probably very easy but I've no idea how to pull this out. Basically, I need to find errors into a very large logfile. When you grep the ID, the output is like this: +- Type: 799911 Code: Ret: 22728954 Mand: X Def: Des: UserDes: SeqNo: 2 +- Type: 799911 Code: Ret:... (5 Replies)
Discussion started by: Arkadia
5 Replies

5. UNIX Desktop Questions & Answers

grep a range of time & date

how can i grep a range? i have a text file with the following text: result.log.00:2012/01/02 12:00:07.422 LOG STARTED HERE N6Kashya29MemoryShieldScheduler_AO_IMPLE, pid=8662/8658, config=(alertThreshold=10,alertLevel=0,killThreshold=7200,coreThreshold=0,full=1), deltaTime=0,... (1 Reply)
Discussion started by: boaz733
1 Replies

6. Shell Programming and Scripting

Grep the Content of a LOG File which has latest Date and Time

Hi All, Need a small help. I have a log file which keeps updating for every Minute with multiple number of lines. I just want to grep few properties which has latest Date and Time to it. How do i do it? I wanted to grep a property by name "Reloading cache with a maximum of" from the... (4 Replies)
Discussion started by: nvindraneel
4 Replies

7. Shell Programming and Scripting

Show date/time with tail|grep command

Hi, I have a log file without date/time, and I want that everytime tail|grep find something it displays the date/time and the line. I have tried something like this command but without any luck to display the date/time: tail -F catalina.out | sed "s/^/`date `/" | egrep ... (6 Replies)
Discussion started by: julugu
6 Replies

8. Shell Programming and Scripting

grep to show date/time of file the string was found in.

I've seen several examples of grep showing the filename the string was found in, but what I really need is grep to show the file details in long format (like ls -l would). scenario is: grep mobile_number todays_files This will show me the string I'm after & which files they turn up in, but... (2 Replies)
Discussion started by: woodstock
2 Replies

9. Shell Programming and Scripting

Processing a log file based on date/time input and the date/time on the log file

Hi, I'm trying to accomplish the following and would like some suggestions or possible bash script examples that may work I have a directory that has a list of log files that's periodically dumped from a script that is crontab that are rotated 4 generations. There will be a time stamp that is... (4 Replies)
Discussion started by: primp
4 Replies

10. Shell Programming and Scripting

grep time and date

Hi, I have a file which is a result of a script running every two minutes. What I wanted to do is to grep a specific date and time (hour and minute) from the file and then count the occurance of 201. I need to get the result of occurance of 201 every 5 minutes. What should I include in my... (8 Replies)
Discussion started by: ayhanne
8 Replies

Featured Tech Videos