Sponsored Content
Full Discussion: A string in a binary file
Operating Systems Solaris A string in a binary file Post 302766715 by q8devilish on Tuesday 5th of February 2013 07:34:29 AM
Old 02-05-2013
Quote:
Originally Posted by Don Cragun
You are correct in noting that you need to use strings when looking for a string in a binary file. The grep utility is only defined to work on text files. This may not be highly efficient, but it should do what you want. First create the following shell script as a file named $HOME/bin/st_gr_pr:
Code:
#!/bin/ksh
# Usage: st_gr_pr pattern file...
pattern="$1"
shift
for f in "$@"
do      if [ $(strings -a -n ${#pattern} "$f" | grep -ic "$pattern" ) -gt 0 ]
        then    printf "%s\n" "$f"
        fi
done

and make it executable using the command:
Code:
chmod +x $HOME/bin/st_gr_pr

Note that the -i option to the grep command in this script makes searches for alphabetic characters case insensitive. I use ksh, but bash should also work if you want to use it in this script.

Then run the command:
Code:
find . -type f -exec st_gr_pr 'srv6000' {} +

to get a list of all regular files rooted in the current directory that contain srv6000, SRV6000, or any of the other six strings with combinations of uppercase and lowercase s, r, and v in that order. Obviously, replace srv6000 if you want to find files containing a different pattern.
works like a charm, perfect answer thanks mate..
 

10 More Discussions You Might Find Interesting

1. Programming

binary to string conversion and vice versa

please let me know that in unix using c programming language we can do binary to string conversion and vice versa using ltoa and atol but how can we do it in c++ programming language. thank you in advance. (3 Replies)
Discussion started by: kinnaree
3 Replies

2. Shell Programming and Scripting

replace string in binary file

Dear all, How can replace special string with another string in binary file? Thanks&Best Regards (2 Replies)
Discussion started by: sg1207
2 Replies

3. Solaris

compiled binary file gives "cannot execute binary file"

Hi, I have two Solaris machines. 1. SunOS X 5.8 Generic_108528-29 sun4u sparc SUNW,Sun-Blade-1500 2. SunOS Y 5.8 Generic_108528-13 sun4u sparc SUNW,Ultra-60 I am trying to buiild a project on both these machines. The Binary output file compiled on machine 2 runs on both the machines. Where... (0 Replies)
Discussion started by: scgupta
0 Replies

4. Shell Programming and Scripting

Split a binary file into 2 basing on 2 delemiter string

Hi all, I have a binary file (orig.dat) and two special delimiter strings 'AAA' and 'BBB'. My binary file's content is as follow: <Data1.1>AAA<Data1.2>BBB <Data2.1>AAA<Data2.2>BBB ... <DataN.1>AAA<DataN.2>BBB DataX.Y might have any length, and contains any kind of special/printable... (1 Reply)
Discussion started by: Averell
1 Replies

5. Shell Programming and Scripting

How to search for string and return binary result?

Hi, I have a problem that I am sure someone will know the answer to. Currently I have a script which returns a binary output if it finds a certain search string (in this case relating to a DRBD cluster) as follows: searchstring="cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate" && echo... (3 Replies)
Discussion started by: almightybunghol
3 Replies

6. UNIX for Advanced & Expert Users

Insert string in binary file at top

How can i append a EBCDIC string of 100 bytes to 0th position of a binary file in UNIX. (4 Replies)
Discussion started by: param_it
4 Replies

7. Shell Programming and Scripting

split a string and convert to binary

Hi All, Iam new to unix scripting and I want a split a string into 4 characters each, leaving the last two characters and convert the splitted values into binary. For example: string='ffd80012ffe20000ffebfffeffea0007fff0ffd70014fff1fff0fff0fff201' this should split as ffd8 0012 ffe2 . .... (5 Replies)
Discussion started by: srinivasayedla
5 Replies

8. Shell Programming and Scripting

Output redirection of c binary file to a file in shell script is failing

I am struck up with a problem and that is with output redirection. I used all the ways for the redirection of the output of c binary to a file, still it is failing. Here are the different ways which I have used: ./a.out | tee -a /root/tmp.txt 2>&1 ./a.out | tee -a /root/tmp.txt 1>&1 ./a.out |... (2 Replies)
Discussion started by: Maya29988
2 Replies

9. Shell Programming and Scripting

Convert binary file to csv and then back to the binary format

Hello *nix specialists, Im working for a non profit organisation in Germany to transport DSL over WLAN to people in areas without no DSL. We are using Linksys WRT 54 router with DD-WRT firmware There are at the moment over 180 router running but we have to change some settings next time. So my... (7 Replies)
Discussion started by: digidax
7 Replies

10. Programming

C program to read a binary file and search for a string?

Hi, I am not a C programmer. The only C exposure I have is reading and completing the exercises from the C (ANSI C ) Programming Language book:o At the moment, I am using the UNIX strings command to extract information for a binary file and grepping for a particular string and the value... (3 Replies)
Discussion started by: newbie_01
3 Replies
BINFMT.D(5)							     binfmt.d							       BINFMT.D(5)

NAME
binfmt.d - Configure additional binary formats for executables at boot SYNOPSIS
/etc/binfmt.d/*.conf /run/binfmt.d/*.conf /usr/lib/binfmt.d/*.conf DESCRIPTION
At boot, systemd-binfmt.service(8) reads configuration files from the above directories to register in the kernel additional binary formats for executables. CONFIGURATION FORMAT
Each file contains a list of binfmt_misc kernel binary format rules. Consult binfmt_misc.txt[1] for more information on registration of additional binary formats and how to write rules. Empty lines and lines beginning with ; and # are ignored. Note that this means you may not use ; and # as delimiter in binary format rules. Each configuration file shall be named in the style of program.conf. Files in /etc/ override files with the same name in /usr/lib/ and /run/. Files in /run/ override files with the same name in /usr/lib/. Packages should install their configuration files in /usr/lib/, files in /etc/ are reserved for the local administrator, who may use this logic to override the configuration files installed from vendor packages. All files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same binary type name, the entry in the file with the lexicographically latest name will be applied. If the administrator wants to disable a configuration file supplied by the vendor, the recommended way is to place a symlink to /dev/null in /etc/binfmt.d/ bearing the same filename. EXAMPLE
Example 1. /etc/binfmt.d/wine.conf example: # Start WINE on Windows executables :DOSWin:M::MZ::/usr/bin/wine: SEE ALSO
systemd(1), systemd-binfmt.service(8), systemd-delta(1), wine(8) NOTES
1. binfmt_misc.txt https://www.kernel.org/doc/Documentation/binfmt_misc.txt systemd 208 BINFMT.D(5)
All times are GMT -4. The time now is 09:54 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy