01-20-2017
Yes, NZ="0$Nr" adds a leading zero. 1 --> 01; 12 --> 012
${NZ#${NZ%??}} uses shell's "parameter expansion: remove prefix / suffix pattern" to chop off leading characters preserving the last two.
${NFN// /-} uses "parameter expansion: pattern substitution" to replace all spaces in a string with dashes. You could try to apply it repeatedly to reduce / remove the multiple space occurrences.
See e.g. man bash for reference of the two builtins.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
i have hundreds of directories that have to be renamed. the directory structure is fairly uniform which makes the scripting a little simpler.
suppose i have many directories like this */*/*/*abc* (in other words i have similar directory names 3 dirs deep that all contain the pattern abc in... (8 Replies)
Discussion started by: quantumechanix
8 Replies
2. Shell Programming and Scripting
I need to split a file based on certain context inside the file. Is there a unix command that can do this? I have looked into split and csplit but it does not seem like those would work because I need to split this file based on certain text. The file has multiple records and I need to split this... (1 Reply)
Discussion started by: matrix1067
1 Replies
3. UNIX for Dummies Questions & Answers
Hi,
I have some ps files where I want to ectract/copy a certain number from and use that number to rename the ps file.
eg:
'file.ps' contains following text:
14 (09 01 932688 0)t
the text can be variable, the only fixed element is the '14 ('. The problem is that the fixed element can appear... (7 Replies)
Discussion started by: JohnDS
7 Replies
4. Shell Programming and Scripting
Evening all. I'm having a terrible time with a script I've been working on for a few days now...
Say I have a text file named top10song.tm2, with the following in it:
kernkraft 400
Imagine
i kissed a girl
Thriller
animals
hallelujah
paint it black
psychosocial
Oi to the world... (14 Replies)
Discussion started by: DJ Charlie
14 Replies
5. Shell Programming and Scripting
Hi,
I'm not very experienced in shell scripting and that's probably why I came across the following problem:
I do have several hundred pairs of text files (PF00x.spl and PF00x.shd) where the first file (PF00x.spl) needs to be renamed according a string that is included in the second file... (12 Replies)
Discussion started by: inCH
12 Replies
6. UNIX for Dummies Questions & Answers
I have a number of files in directories labeled like this:
/Data/tr_gray/tr_DTI/dti_FA.nii.gz
(the brackets here represent a range of number that the files are labeled with)
I need to rename each dti_FA.nii.gz file according to the name of the folder it resides in. For example, the file ... (3 Replies)
Discussion started by: tk0034
3 Replies
7. Shell Programming and Scripting
Hello,
I have a file ff.txt that looks as follows
*ABNA.txt
356
24
36
112
*AC24.txt
457
458
321
2
ABNA.txt and AC24.txt are the files in the folder named foo1. Based on the numbers in the ff.txt file, I want to extract the lines from the corresponding files in the foo1 folder and... (2 Replies)
Discussion started by: mohamad
2 Replies
8. Shell Programming and Scripting
I have files in the ABC_YYYYMMDD.zip format under a directory. Each zip file contains A text file in the ABC_YYYYMMDD.txt format.
I am trying to create a script that will Rename the zip files and their underlying text file replacing the datepart in them with .
For eg: in the case of... (1 Reply)
Discussion started by: bash987
1 Replies
9. UNIX for Dummies Questions & Answers
Hi,
I have a directory with a lot of files like this:
a.bam
b.bam
c.bam
I like to rename these files based on a list where the name of the files in the first column will be replasced by the names in the second column. Here is my list which is a tab-delimited text file:
a x
b y
c ... (4 Replies)
Discussion started by: a_bahreini
4 Replies
10. Shell Programming and Scripting
Hello, I have a text file "file.list" with the contents below.
file1
filename1
file2
filename2
file3
filename3
file1, file2 and file3 are files existing in the same directory as the text file file.list.
I want to rename file1 to filename1, file2 to filename2, as show in the text... (1 Reply)
Discussion started by: james2009
1 Replies
LEARN ABOUT ULTRIX
fnmatch
FNMATCH(3) Linux Programmer's Manual FNMATCH(3)
NAME
fnmatch - match filename or pathname
SYNOPSIS
#include <fnmatch.h>
int fnmatch(const char *pattern, const char *string, int flags);
DESCRIPTION
The fnmatch() function checks whether the string argument matches the pattern argument, which is a shell wildcard pattern.
The flags argument modifies the behavior; it is the bitwise OR of zero or more of the following flags:
FNM_NOESCAPE
If this flag is set, treat backslash as an ordinary character, instead of an escape character.
FNM_PATHNAME
If this flag is set, match a slash in string only with a slash in pattern and not by an asterisk (*) or a question mark (?)
metacharacter, nor by a bracket expression ([]) containing a slash.
FNM_PERIOD
If this flag is set, a leading period in string has to be matched exactly by a period in pattern. A period is considered to be
leading if it is the first character in string, or if both FNM_PATHNAME is set and the period immediately follows a slash.
FNM_FILE_NAME
This is a GNU synonym for FNM_PATHNAME.
FNM_LEADING_DIR
If this flag (a GNU extension) is set, the pattern is considered to be matched if it matches an initial segment of string which is
followed by a slash. This flag is mainly for the internal use of glibc and is implemented only in certain cases.
FNM_CASEFOLD
If this flag (a GNU extension) is set, the pattern is matched case-insensitively.
FNM_EXTMATCH
If this flag (a GNU extension) is set, extended patterns are supported, as introduced by 'ksh' and now supported by other shells.
The extended format is as follows, with pattern-list being a '|' separated list of patterns.
'?(pattern-list)'
The pattern matches if zero or one occurrences of any of the patterns in the pattern-list match the input string.
'*(pattern-list)'
The pattern matches if zero or more occurrences of any of the patterns in the pattern-list match the input string.
'+(pattern-list)'
The pattern matches if one or more occurrences of any of the patterns in the pattern-list match the input string.
'@(pattern-list)'
The pattern matches if exactly one occurrence of any of the patterns in the pattern-list match the input string.
'!(pattern-list)'
The pattern matches if the input string cannot be matched with any of the patterns in the pattern-list.
RETURN VALUE
Zero if string matches pattern, FNM_NOMATCH if there is no match or another nonzero value if there is an error.
ATTRIBUTES
For an explanation of the terms used in this section, see attributes(7).
+----------+---------------+--------------------+
|Interface | Attribute | Value |
+----------+---------------+--------------------+
|fnmatch() | Thread safety | MT-Safe env locale |
+----------+---------------+--------------------+
CONFORMING TO
POSIX.1-2001, POSIX.1-2008, POSIX.2. The FNM_FILE_NAME, FNM_LEADING_DIR, and FNM_CASEFOLD flags are GNU extensions.
SEE ALSO
sh(1), glob(3), scandir(3), wordexp(3), glob(7)
COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the
latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.
GNU
2015-12-28 FNMATCH(3)