06-18-2012
@unohu
Please explain why do not want to use a workfile and the context in which this logfile is created?
If the log file is open by a process, there is no method to shorten the file without using a workfile (and even that method risks losing new log entries). However it is possible to retain the same inode (is that your issue?).
Check whether the file is open with the fuser command.
10 More Discussions You Might Find Interesting
1. Solaris
Hi experts,
in my solaris 9 the file- /var/adm/messeages growin too first. by 24 hours 40MB. And always giving the below messages--
bash-2.05# tail -f messages
Nov 9 16:35:38 ME1 last message repeated 1 time
Nov 9 16:35:38 ME1 ftpd: wtmpx /var/adm/wtmpx No such file or directory
Nov 9... (7 Replies)
Discussion started by: thepurple
7 Replies
2. Solaris
I have a file with 28,00,000 lines of rows in this the first 80 lines will be chunks .
I want to delete the chunks of 80 lines. I tried tail -f2799920 filename.
is there any efficient way to do this.
Thanks in advance. (7 Replies)
Discussion started by: salaathi
7 Replies
3. Shell Programming and Scripting
Input:
a
b
b
c
d
d
I need:
a
c
I know how to get this (the lines that have duplicates) :
b
d
sort file | uniq -d
But i need opossite of this. I have searched the forum and other places as well, but have found solution for everything except this variant of the problem. (3 Replies)
Discussion started by: necroman08
3 Replies
4. Shell Programming and Scripting
I have a command which prints #lines after and before the search string in the huge file
nawk 'c-->0;$0~s{if(b)for(c=b+1;c>1;c--)print r;print;c=a}b{r=$0}' b=0 a=10 s="STRING1" FILE
The file is 5 gig big.
It works great and prints 10 lines after the lines which contains search string in... (8 Replies)
Discussion started by: prash184u
8 Replies
5. Shell Programming and Scripting
Hi,
I have a big (2.7 GB) text file. Each lines has '|' saperator to saperate each columns.
I want to delete those lines which has text like '|0|0|0|0|0'
I tried:
sed '/|0|0|0|0|0/d' test.txt
Unfortunately, it scans the file but does nothing.
file content sample:... (4 Replies)
Discussion started by: dipeshvshah
4 Replies
6. UNIX for Advanced & Expert Users
Hi All,
I have a very huge file (4GB) which has duplicate lines. I want to delete duplicate lines leaving unique lines. Sort, uniq, awk '!x++' are not working as its running out of buffer space.
I dont know if this works : I want to read each line of the File in a For Loop, and want to... (16 Replies)
Discussion started by: krishnix
16 Replies
7. Shell Programming and Scripting
Hi all,
I have a big file (about 6 millions rows) and I have to delete same occurrences, stored in a small file (about 9000 rews). I have tried this:
while read line
do
grep -v $line big_file > ok_file.tmp
mv ok_file.tmp big_file
done < small_file
It works, but is very slow.
How... (2 Replies)
Discussion started by: Tibbeche
2 Replies
8. UNIX for Dummies Questions & Answers
Hi,
To load a big file in a table,I have a make sure that all rows in the file has same number of the columns .
So in my file if I am getting any rows which have columns not equal to 6 , I need to delete it . Delimiter is space and columns are optionally enclosed by "".
This can be ... (1 Reply)
Discussion started by: hemantraijain
1 Replies
9. Shell Programming and Scripting
Hi All,
I am trying to get some lines from a file i did it with while-do-loop. since the files are huge it is taking much time. now i want to make it faster.
The requirement is the file will be having 1 million lines.
The format is like below.
##transaction, , , ,blah, blah... (38 Replies)
Discussion started by: mad man
38 Replies
10. UNIX for Beginners Questions & Answers
Dear all,
I have stuck with this problem for some days.
I have a very big file, this file can not open by vi command.
There are 200 loops in this file, in each loop will have one line like this:
GWA quasiparticle energy with Z factor (eV)
And I need 98 lines next after this line.
Is... (6 Replies)
Discussion started by: phamnu
6 Replies
fuser(2) System Calls Manual fuser(2)
NAME
fuser - Reports PIDs and UIDs for files, file systems and/or the devices attached to them.
SYNOPSIS
#include <sys/fuser.h>
int fuser(
char *file,
long flag,
struct f_user fuser_array[],
long sizeof_fuser_array );
PARAMETERS
Specifies the file name. Specifies one of the following values. If none of the following are values are specified, the default is to
match open files. Matches only file ids. Provides mount point matching. Matches deleted files on the mount point specified by file.
Specifies the array. Specifies the number of elements in the fuser array.
DESCRIPTION
The fuser function reports a list of PIDs and UIDs that are associated with a specified file, file system, and/or the devices that are
attached to them.
The fuser function can report back additional information about "matches" by ORing one of the following constants that can be passed back
in the member fu_flags: Current directory Current directory Parent of the current directory At least one file open, but the number open is
not known. Executable image. Controlling terminal Trace At least one file is mmapped
RETURN VALUES
On success, the fuser function returns the number of fuser_array elements that were found. The contents of the structure are as follows:
typedef struct f_user {
pid_t fu_pid;
int fu_flags;
uid_t fu_uid; } f_user_t;
If an error has occurred, the fuser function returns -1 and sets errno to indicate the error.
ERRORS
If the fuser function fails, errno may be set to one of the following values: The array is not large enough to hold the number of array
elements returned or the array structure cannot be filled The file parameter specified does not exist
EXAMPLES
Open regular files and special files are matched using the flag parameter set at 0L. Thus, if process 127 and 3220 open the /home/try file
simultaneously and the fuser function is active, the PIDs and UIDs associated with the home/try file are reported as in the following exam-
ple:
fuser("/home/try", 0L, fuser_array,
(long) (sizeof (fuser_array)/sizeof(fuser_array[0])); Similarly, if the special device file /dev/ttyp2 is open by process 32,
then that PID and its associated UID are reported as in the following example:
fuser("/dev/ttyp2", 0L, fuser_array,
(long) (sizeof (fuser_array)/sizeof(fuser_array[0]));
fuser(2)