Sponsored Content
Full Discussion: Extracting substring
Top Forums Shell Programming and Scripting Extracting substring Post 302524039 by agama on Friday 20th of May 2011 08:03:42 PM
Old 05-20-2011
Quote:
Originally Posted by mira
Hi Franklin,

I am curious to know what does this '##*' mean in this regular expression?

Thanks!
This isn't a regex, it's a shell (kshell or bash) variable substitution syntax. The ##pattern and #pattern match the pattern at the beginning of the value contained by the variable and deletes it before the value is used. (The contents of the variable are unchanged)

The difference between the two is that ## matches the longest pattern and # matches the shortest. For example, if you had a filename /home/scooter/lib/cal.rb in variable fname and want the basename, coding ${fname##*/} matches all charcters (*) from the front of the string up to the right most slant. The result would be cal.rb

If you had coded [${fname#*/} then all characters up to the first slant would be removed and the result would have been home/scooter/lib/cal.rb.

You will also note that the "pattern" isn't a regular expression pattern, but a file globbing pattern and thus its ##*/ rather than ##.*/. This can be confusing.

The advantage to using these, as opposed to $(basename $fname), is that it is much more efficient to let the shell do the string manipulation than to invoke a separate process just to chop a string up.

Have a look at the Kshell man page as there are a lot of variable substitution tricks that can be used.
man/man1/ksh.html man page
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

extracting substring from a file name

hi i need to name a file with a substring of a another file name. i.e. if the old filename is abc.txt , the new filename should be abc_1.txt i should get the substring of the file name and then name the new one please let me know how to do it (4 Replies)
Discussion started by: adityamahi
4 Replies

2. UNIX for Dummies Questions & Answers

Extracting substring using ${var:start:len}

Hi All, I am trying to extract substring from a variable by using the pattern as var3=${var2:3:3} var2 is a variable already declared and having the value. From var2 i need to extract 3 characters from 3rd position. When ever i give the expression var3=${var2:3:3} on shell prompt, the... (3 Replies)
Discussion started by: Raamc
3 Replies

3. Shell Programming and Scripting

Extracting substring from string

Hi awk and sed gurus, Please help me in the following. I have the following entries in the file ABCDErules AbHDPrules ABCrules -- -- and other entries in the file. Now, I want to extract from the file that contain entries for *rules and process it separately. How can i do it... (6 Replies)
Discussion started by: sdosanjh
6 Replies

4. Shell Programming and Scripting

Extracting a substring from a string in unix

Hi, I would like to extract a substring from a string in unix. eg: ./checkfile.sh -- i need only checkfile.sh from this string. Could someone help me out in this... Regards Arun (19 Replies)
Discussion started by: arunkumarmc
19 Replies

5. UNIX for Dummies Questions & Answers

Extracting substring between pattern only one time

Hello ifconfig return : eth0 Link encap:Ethernet HWaddr 11:24:1D:C1:99:BA inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:37307 errors:0 dropped:0 overruns:0 frame:0 ... (2 Replies)
Discussion started by: jcdole
2 Replies

6. Shell Programming and Scripting

Need help in extracting the substring in UNIX

Hi all, I need to extract the "abcdef" from the below string Digital_abcdef_20130103.txt.gz The length of the "abcdef" will be changing but it will be always after the word Digital_ and before the second underscore help in this regard is highly appreciated (3 Replies)
Discussion started by: rithushri
3 Replies

7. Shell Programming and Scripting

Help on extracting a substring from the input string

Hi, I am new to Unix. I am trying to extract a substring from an input string: Ex - input string: deploy_v11_9_1 i want to extract and store the value v11_9_1 from the input string in a new variable. I am using following command in my shell script file: echo "Enter the folder name u... (5 Replies)
Discussion started by: Pranav Bhasker
5 Replies

8. Shell Programming and Scripting

Bash - Extracting whole word containing substring

hello. I get this text when using some command : S | Name | Type | Version | Arch | Repository --+-----------------+---------+---------+------+------------- | AdobeReader_enu | package | 9.5.4-1 | i486 | zypper_local I need to get "AdobeReader_enu" from the the pattern "Ado"... (7 Replies)
Discussion started by: jcdole
7 Replies

9. Shell Programming and Scripting

Extracting a substring from Line

Hi All I have a line which is as below 1234567 Gagan Paswani zz23432 1000000000 1000000000 ASTHEYXX-RTUC zz23432 I need to extract the first occurence of zz23432 which will have the reg expression as {2}{5} Could you please assist as to how I can extract this... (3 Replies)
Discussion started by: Prashantckc
3 Replies

10. Shell Programming and Scripting

Extracting substring from variable

Hi All, I'm facing issue wherein I have 2 character string like 'CR' and 'DR' and I want to extract just 1st character but am unable to do it. I tried below options but they are returning me 2nd character only, var="CR" echo ${var:1} returns just "R" echo ${var:0} returns "CR" ... (5 Replies)
Discussion started by: arvindshukla81
5 Replies
lsusb(8)							Linux USB Utilities							  lsusb(8)

NAME
lsusb - list USB devices SYNOPSIS
lsusb [ options ] DESCRIPTION
lsusb is a utility for displaying information about USB buses in the system and the devices connected to them. OPTIONS
-v, --verbose Tells lsusb to be verbose and display detailed information about the devices shown. This includes configuration descriptors for the device's current speed. Class descriptors will be shown, when available, for USB device classes including hub, audio, HID, communi- cations, and chipcard. -s [[bus]:][devnum] Show only devices in specified bus and/or devnum. Both ID's are given in decimal and may be omitted. -d [vendor]:[product] Show only devices with the specified vendor and product ID. Both ID's are given in hexadecimal. -D device Do not scan the /dev/bus/usb directory, instead display only information about the device whose device file is given. The device file should be something like /dev/bus/usb/001/001. This option displays detailed information like the v option; you must be root to do this. -t Tells lsusb to dump the physical USB device hierarchy as a tree. This overrides the v option. -V, --version Print version information on standard output, then exit successfully. RETURN VALUE
If the specified device is not found, a non-zero exit code is returned. FILES
/var/lib/usbutils/usb.ids A list of all known USB ID's (vendors, products, classes, subclasses and protocols). SEE ALSO
lspci(8), usbview(8). AUTHOR
Thomas Sailer, <sailer@ife.ee.ethz.ch>. usbutils-001 6 May 2009 lsusb(8)
All times are GMT -4. The time now is 01:27 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy