f



'cat file' but only if 'file' exist

I'm trying to run 'cat *.x' only if *.x files exist.  What is the
cleanest way of doing this?  I'm doing it by
    shopt -s nullglob
    for i in *.x; do cat $i; done
but this is aweful typing.

-- 
William Park, Open Geometry Consulting, <opengeometry@yahoo.ca>
No, I will not fix your computer!  I'll reformat your harddisk, though.
0
William
6/9/2004 6:26:09 AM
comp.unix.shell 15484 articles. 3 followers. Post Follow

10 Replies
1470 Views

Similar Articles

[PageSpeed] 0

On 2004-06-09, William Park wrote:
> I'm trying to run 'cat *.x' only if *.x files exist.  What is the
> cleanest way of doing this?  I'm doing it by
>     shopt -s nullglob
>     for i in *.x; do cat $i; done
> but this is aweful typing.

set -- *.x
[ -f "$1" ] && cat -- *.x

-- 
    Chris F.A. Johnson                  http://cfaj.freeshell.org/shell
    ===================================================================
    My code (if any) in this post is copyright 2004, Chris F.A. Johnson
    and may be copied under the terms of the GNU General Public License
0
Chris
6/9/2004 6:39:28 AM
2004-06-9, 06:26(+00), William Park:
> I'm trying to run 'cat *.x' only if *.x files exist.  What is the
> cleanest way of doing this?  I'm doing it by
>     shopt -s nullglob
>     for i in *.x; do cat $i; done
> but this is aweful typing.

zsh -c 'cat ./*.x'

With bash:

shopt -s nullglob
files=(./*.x)
if (( ${#files[@]} > 0 )); then
  cat "${files[@]}"
else
  printf >&2 '%s\n' "${0##*/}: no *.x files"
  false
fi

You could also do:

cat /dev/null ./*.x

-- 
Stephane
0
Stephane
6/9/2004 9:46:25 AM
On 9 Jun 2004 06:26:09 GMT, William Park 
  <opengeometry@yahoo.ca> wrote:
> I'm trying to run 'cat *.x' only if *.x files exist.  What is the
> cleanest way of doing this?  I'm doing it by
>     shopt -s nullglob
>     for i in *.x; do cat $i; done
> but this is aweful typing.
>
cat *.x 2>/dev/null
will cat the files without producing a "No such file" error message, but
it will also ignore other errors.

-- 
Simulations are like miniskirts, they show a lot and hide the essentials.
		-- Hubert Kirrman
0
Bill
6/9/2004 2:09:40 PM
William Park <opengeometry@yahoo.ca> wrote in message news:

> 
> I'm trying to run 'cat *.x' only if *.x files exist.  What is the
> cleanest way of doing this?  I'm doing it by
>     shopt -s nullglob
>     for i in *.x; do cat $i; done
> but this is aweful typing.
> 

set -- [*].x *.x
case $1$2 in
 '[*.x]*.x'):;;
 *) shift
    for i
    do
     [ -f "$i" ] && cat "$i";;
    done
esac
0
sharma__r
6/9/2004 3:15:34 PM
2004-06-9, 08:15(-07), rakesh sharma:
[...]
> set -- [*].x *.x
> case $1$2 in
>  '[*.x]*.x'):;;

'[*].x*.x') ;;

>  *) shift
>     for i
>     do
>      [ -f "$i" ] && cat "$i";;

                      cat -- "$i";;
>     done
> esac

or use ./*.x

-- 
Stephane
0
Stephane
6/9/2004 4:27:03 PM
Stephane CHAZELAS <this.address@is.invalid> wrote:
> 2004-06-9, 06:26(+00), William Park:
> > I'm trying to run 'cat *.x' only if *.x files exist.  What is the
> > cleanest way of doing this?  I'm doing it by
> >     shopt -s nullglob
> >     for i in *.x; do cat $i; done
> > but this is aweful typing.

> cat /dev/null ./*.x

Nice!  Thanks Stephane.

-- 
William Park, Open Geometry Consulting, <opengeometry@yahoo.ca>
No, I will not fix your computer!  I'll reformat your harddisk, though.
0
William
6/9/2004 7:10:11 PM
On 2004-06-09, William Park wrote:
> Stephane CHAZELAS <this.address@is.invalid> wrote:
>> 2004-06-9, 06:26(+00), William Park:
>> > I'm trying to run 'cat *.x' only if *.x files exist.  What is the
>> > cleanest way of doing this?  I'm doing it by
>> >     shopt -s nullglob
>> >     for i in *.x; do cat $i; done
>> > but this is aweful typing.
>
>> cat /dev/null ./*.x
>
> Nice!  Thanks Stephane.

$ cat /dev/null ./*.x
cat: ./*.x: No such file or directory

-- 
    Chris F.A. Johnson                  http://cfaj.freeshell.org/shell
    ===================================================================
    My code (if any) in this post is copyright 2004, Chris F.A. Johnson
    and may be copied under the terms of the GNU General Public License
0
Chris
6/10/2004 4:35:55 AM
Chris F.A. Johnson <c.fa.johnson@rogers.com> wrote:
> On 2004-06-09, William Park wrote:
> > Stephane CHAZELAS <this.address@is.invalid> wrote:
> >> 2004-06-9, 06:26(+00), William Park:
> >> > I'm trying to run 'cat *.x' only if *.x files exist.  What is the
> >> > cleanest way of doing this?  I'm doing it by
> >> >     shopt -s nullglob
> >> >     for i in *.x; do cat $i; done
> >> > but this is aweful typing.
> >
> >> cat /dev/null ./*.x
> >
> > Nice!  Thanks Stephane.
> 
> $ cat /dev/null ./*.x
> cat: ./*.x: No such file or directory

With 'shopt' of course. :-)

-- 
William Park, Open Geometry Consulting, <opengeometry@yahoo.ca>
No, I will not fix your computer!  I'll reformat your harddisk, though.
0
William
6/10/2004 5:44:47 AM
Stephane CHAZELAS <this.address@is.invalid> wrote in message news:

> 
> 2004-06-9, 06:26(+00), William Park:
> > I'm trying to run 'cat *.x' only if *.x files exist.  What is the
> > cleanest way of doing this?  I'm doing it by
> >     shopt -s nullglob
> >     for i in *.x; do cat $i; done
> > but this is aweful typing.
> 
....[snipped].....


> You could also do:
> 
> cat /dev/null ./*.x
> 

hi Stephane

Can you explain the rationale for the above? If some dir. ends in .x how
would it handle that? what is the function of /dev/null?

---
Rakesh.
0
sharma__r
6/10/2004 12:49:47 PM
2004-06-10, 05:49(-07), rakesh sharma:
[...]
>> >     shopt -s nullglob
[...]
>> You could also do:
>> 
>> cat /dev/null ./*.x
>
> hi Stephane
>
> Can you explain the rationale for the above? If some dir. ends in .x how
> would it handle that? what is the function of /dev/null?

The above supposed the nullglob bash option was on.

This way, if there's no .x file, the command resolves to
cat /dev/null
that does nothing.

Without the /dev/null, it would resolve to:
cat
that reads stdin.

Sorry, my post was not clear.

-- 
Stephane
0
Stephane
6/10/2004 2:10:45 PM
Reply:

Similar Artilces:

exist('fname','file')
Hello I have a file 'fname' in one of the directories under the matlabpath. the file was saved by the SAVE function. when I exist('fname','file') ans = 0 why it is not showing 2 since it exists? I also tried the full path name of the file, thanks Is the filename actually 'fname'? Or is the filename stored in the fname variable? Or is there an extension? (i.e. fname.mat) Is it in a different directory? If fname is a variable, you need to leave off the quotes: exist(fname,'file') If it has an extension, you need to put that on: e...

'^=' and '~='?
Hello, What is the difference between '^=' and '~='? Thanks, Duckhye ...

'is not' or '!='
A newbie question to you; what is the difference between statements like: if x is not None: and if x != None: Without any context, which one should be preferred? IMHO, the latter is more readable. On 2014-08-18 21:35, ElChino wrote: > A newbie question to you; what is the difference between statements > like: > if x is not None: > and > if x != None: > > Without any context, which one should be preferred? > IMHO, the latter is more readable. > "x == y" tells you whether x and y refer to objects that are equal. "x is y" tells you whether x and y actually refer to the same object. In the case of singletons like None (there's only one None object), it's better to use "is". "ElChino" <elchino@cnn.cn>: > A newbie question to you; what is the difference between statements > like: > if x is not None: > and > if x != None: Do the following: take two $10 bills. Hold one bill in the left hand, hold the other bill in the right hand. Now, the bill in the left hand "is not" the bill in the right hand. However, the bill in the left hand "==" the bill in the right hand. > Without any context, which one should be preferred? > IMHO, the latter is more readable. In almost all cases, both tests would result in the same behavior. However, the "is not" test is conceptually the correct one since you want...

'exist' precedence and returns for exist(str,'file')
I've been using the 'exist' command a lot as of late to determine whether or not a file exists (of the appropriate type) on my hard-disk. Well, I noticed that exist returns different values depending on how the filename is specified. The below should be helpful for anyone using exist for file processing. SEARCH ORDER PRECEDENCE Consider the following command: exist( ['foo'] ) (1) Looks for 'foo' as a variable (2) Checks for 'foo' as a built-in function (3) Searches the current directory, in the following order, for 'foo': (A) Directories (...

``awk '!a[$0]++' file'' and ``awk '{if(!($0 in rec)) {rec[$0]=1; print $0;}}' file ''
Hi all, Currently, I'm reading the book on awk programming language, but meet the following two examples which I cann't understand so well: awk '!a[$0]++' file and awk '{if(!($0 in rec)) {rec[$0]=1; print $0;}}' file Could someone here please give me some hints or explanations on the logic of above codes? Regards -- ..: Hongyi Zhao [ hongyi.zhao AT gmail.com ] Free as in Freedom :. In article <meuejm$gsf$1@aspen.stu.neva.ru>, Hongyi Zhao <hongyi.zhao@gmail.com> wrote: > Hi all, > > Currently, I'm reading the bo...

web('file', 'filename' '-browser') not working
Hello, I'm working on a project involving Matlab and a nice flashy GUI. To call help files, I do: web('file', 'help.html' '-browser'); On my computer, this works. After compiling it, it works. If I manage to get the current directory wrong, somehow, the browser attempts to go to www.help.com, rather than put up an error. So far so good, except when the file isn't there, which I'm ignoring for the moment. However, when I run the program on other computers (I compile the program first), it always goes to www.help.com, no matter what the pwd says, or where I put help.html. This seems to happen on about half of the other computers I try it on. Any ideas? I had thought it was just path mixups but putting 'pwd' in the appropriate places seems to indicate nothing is amiss. I do not want to use explicit path names, (ie 'file:///c:/stuff/help.html' syntax) as this program is meant for some distribution and I can't guarantee that people will always have it running from the same location. Thank you in advance, --Anne I finally did a = sprintf('file:///%shelp.html#%s', pwd, section); web('file', a, '-browser'); I discovered that the file:/// syntax does not require paths to be deliminated by '/' but can use '\' unlike what I had thought. I read a bug report that using the internal web browser crashes when using compiled code. However, a similar crash happens for me when using R2006a....

Tcl 8.6 unexpected 'file exists'
I have a proc which takes a full path argument for a file. (one of the items returned from a glob) roughly: proc handlefile {path} { #puts stdout [file normalize $path] set fsize [file size $path] #...etc } Strangely... a particular file has problems with the above. The 'file size' call returns: could not read "/usr/local/xxx/www/yyy/Newsletter/050609/~ $sueme220509.htm" no such file or directory The 'file normalize' output is "/usr/local/virtual1/hosting/base/yy/ yyy/yyy/www/Newsletter/050609/~$sueme220509.htm" Both these paths are valid,...

'''''''''''''The Running Update/Append Queries Using VBA code Ordeal''''''''''''''
Hello fellow programmers, I am trying to run an append/update query from code, a command button on a form initiates the queries. the format i am using is; _____________________________________________________ SELECT "criteria" FROM "criteria" WHERE "criteria" UPDATE/APPEND "field selections" RecordSource "qryExample" = above text strings" _______________________________________________________________________ When i am running a SELECT query in this manner it works fine with no problems, and accepts the values of specified linked for...

Difference between a 'file' and a 'table'
With OS400, all files are objects that can be accessed relationally. When I view the file system from Navigator (windows client), I see there is the Database and SQL tables, then there is the filesystem. I can manipulate both these objects (tables, files) with SQL. So, what is the difference between a table and a file? -- Texeme http://texeme.com Without being strict in its definition a file and a table in OS/400 are the same. If you go into object types you will find that there is a Type *FILE and a Type *TBL, maybe I will ask the next question, what is the difference ...

'to file' and 'to workspace' help
I have a model that runs a 4 degrees of freedom robot here, right now I am only working with rotating the robot though. I have the model using a repeating sequence stair block as an input, this waits 10 seconds spins 5 degrees waits 10 secs spins 5 more degrees all the way up to 360 then i have a stop simulation block that stops the simulation once it has reached 360. The model works perfectly for my purpose, but in my feedback loop that reads my encoder position i am trying to insert a to file or to workspace block so that i can keep track of the encoder readings while the robot is stopped ...

'''''''''''''The Running Update/Append Queries Using VBA code Ordeal'''''''''''''' #2
Hi, Thanks for ur help there HJ. I know how to do the tasks you specified there. I would like for the update query to use field values from some of the fields on the form (frmInvoices) such as InvoiceNumber, DateFrom, DateTo. My problem is that an append/update query can't find the values in the open Form (frmInvoices) when I specify them as; [Forms]![frmInvoices]![InvoiceNumber] a select query has no problem finding the field values on a form. please help. Aaron Hi Aaron, Could you post the entire code that you are having trouble with? Now it is not possible to see what goes wrong. HJ "Aaron" <aaron@rapid-motion.co.uk> wrote in message news:260d7f40.0408120245.2f3d01f8@posting.google.com... > Hi, > > Thanks for ur help there HJ. > > I know how to do the tasks you specified there. > > I would like for the update query to use field values from some of the > fields on the form (frmInvoices) such as InvoiceNumber, DateFrom, > DateTo. My problem is that an append/update query can't find the > values in the open Form (frmInvoices) when I specify them as; > > [Forms]![frmInvoices]![InvoiceNumber] > > a select query has no problem finding the field values on a form. > > please help. > > Aaron First off, if you are not always using all the parameters specified in your form, then you have to add parameters to your query on the fly. Also, you can't just do something like qdf.SQL = "SE...

if str_mo not in ('','.') and str_da not in ('','.') and str_yy not in ('','.') Any shorter ?
Hi, there. =20 I'm just curious if it ever dawned on anybody how to abbreviate this line : if str_mo not in ('','.') and str_da not in ('','.') and str_yy not in ('','.')=20 =20 Igor Kurbeko Clinical Programmer Analyst 678 336 4328 ikurbeko@atherogenics.com =20 no brain no pain =20 how about: if not (str_mo in ('','.') or str_da in ('','.') or str_yy in ('','.')) OR if not (missing(str_mo) or missing(str_da) or missing(str_yy)) Eric On 22 Oct 03 21:13:37 GMT, ikurbeko@ATHER...

'Adding new data file' vs 'extending existing data file size' to increase Tablespace
As the Tablespace is almost filled on the running system now, we have to add additional space to the Tablespace. As I understand, the following are the two options available to do that: 1) Add a new data file to hold the additional data in Tablespace: SQL> alter tablespace my_TS add datafile '/someDir/my_TS2.dbf' size 100M; 2) Resize the existing Tablespace's data file. SQL> alter database datafile '/someDir/my_TS1.dbf' resize 200M; What is the best way to go? In my understanding, the 1st option is not preferable as the Tablespace is spread over 2 data files and ...

Gui having an 'open file window' and a 'save file window'
Is it possible to click on a button in the gui and have a Windows-like window where I can select the file to open and another like when you click on 'save as'? Thank you very much nathaniel zoso wrote: > Is it possible to click on a button in the gui and have a > Windows-like window where I can select the file to open and another > like when you click on 'save as'? > > Thank you very much Check out the UIGETFILE and UIPUTFILE functions, respectively. -SteveSimon ...

change 'file name' in 'From Multimedia File' simulink block
I need to load a avi video into workspace and do some processing work. I use the 'From Multimedia File' block in simulink to extract the audio of the avi file. The question is that if for different avi files, i have to manually set the 'file name' of the 'From Multimedia File' everytime before start the simulation. I can read the avi file in a .m file and get the path name and filename first. Is that possible to send these path name and filename automatically to the 'file name' in 'From Multimedia File' block when the avi file is loaded? thx a lo...

Is 'du -b file' equivalent to 'wc -c file'?
Hi all, It seems that both 'du -b file' and 'wc -c file' can give the correct bytes count on the file. Are they equivalent for all case on this type of job? Regards -- ..: Hongyi Zhao [ hongyi.zhao AT gmail.com ] Free as in Freedom :. On 2015-05-22, Hongyi Zhao <hongyi.zhao@gmail.com> wrote: > Hi all, > > It seems that both 'du -b file' and 'wc -c file' can give the correct > bytes count on the file. Are they equivalent for all case on this type of > job? > > Regards There's no -b switch for du on my system (Mac OS X 10.10.3), and it's not in POSIX. The -c switch for wc is however standard, so use that instead. Note that you will have to use -m with wc to always get the correct number of *characters* in a file. -- :: Andreas Kusalananda Kahari, Uppsala University, Sweden :: :: a n d r e a s . k a h a r i @ i c m . u u . s e :: On Fri, 22 May 2015 06:52:32 +0000, Kusalananda wrote: > There's no -b switch for du on my system (Mac OS X 10.10.3), I can find the following for my case manpage of du: -b, --bytes equivalent to '--apparent-size --block-size=1' --apparent-size print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due to holes in ('sparse') files, internal fragmentation, indirect blocks, and the like -B, --block-size=SIZE scale sizes by SIZE befo...

A function with 'and' , 'not' , 'null' , 'car' and 'cdr'
What's this ? (defun enigma (x) (and (not (null x)) (or (null (car x)) (enigma (cdr x))))) "I suppose I should learn Lisp, but it seems so foreign." - Paul Graham, Nov 1983 On Wed, Oct 07 2015, CAI GENGYANG wrote: > What's this ? > > > (defun enigma (x) > (and (not (null x)) > (or (null (car x)) > (enigma (cdr x))))) Bad taste? It returns T if the list X contains nil as an element. It would be clearer to write (some #'null x). Helmut CAI GENGYANG ...

Issue with the 'script' command in users '.kshrc' and '.bashrc' files
I am attempting to monitor users actions by using the following 'script' command: # exec script -a /tmp/${LOG} In order to capture all types of login whether 'telnet', su, su - etc etc I have put it into the .profile, .dtprofile and the *rc shell files. This works fine for CSH and SH, however if I launch another session (dtterm &) or switch shell to either KSH or BASH, then it seems to spin round and attempt to infinately create fresh 'script' sessions until I quit out. Example below: Script started, file is /tmp/x Script started, file is /tmp/x Script started,...

Re: if str_mo not in ('','.') and str_da not in ('','.') and str_yy not in ('','.') Any shorter ?
OR you could use ARRAY data new; set old; array igor $ (*) str_mo str_da str_yr; do over igor; if igor ~in (' ','.') then do; end; run; Prasad Ravi Igor Kurbeko <ikurbeko@ATHEROGENIC To: SAS-L@LISTSERV.UGA.EDU S.COM> cc: Sent by: "SAS(r) Subject: if str_mo not in ('','.') and str_da not in ('','.') and str_yy ...

In awk -- how to 'cat' a file for it's value and update another file
I have a file (schvoy) with one variable. I have a file (baplie) with many lines. I only want to update the line in file baplie that has $1 ~ /TDT/ and I want to update $3 with the value of file schvoy. I feel like I have tried everything. Please advise the best and easiest way to pass the value in schvoy file using awk. Thanks very much. onewayonlytojesus@yahoo.com wrote: > I have a file (schvoy) with one variable. > I have a file (baplie) with many lines. > I only want to update the line in file baplie that has $1 ~ /TDT/ and I > want to update $3 with the value of file schvoy...

error: expected '=', ',', ';', 'asm' or '__attrib
Hi I'm trying to compile an ADC Driver & come acrosss the following error. I've no experience writing drivers before, and hence have no clue how to fix it. Hope someone out there has encountered the problem & suggesst a fix for the same. The Error is I get is : qadc.c: At top level: qadc.c:97: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'qadc_read' make: *** [qadc.o] Error 1 [root@localhost qadc]# ########################################################################### ADC Driver Code ##...

error: expected '=', ',', ';', 'asm' or '__attrib
Hi I'm trying to compile an ADC Driver & come acrosss the following error. I've no experience writing drivers before, and hence have no clue how to fix it. Hope someone out there has encountered the problem & suggesst a fix for the same. The Error is I get is : qadc.c: At top level: qadc.c:97: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'qadc_read' make: *** [qadc.o] Error 1 [root@localhost qadc]# ########################################################################### ADC Driver Code ########################################################################### #define MODULE #define __KERNEL__ #include <linux/config.h> #include <linux/module.h> #include <linux/kernel.h> /* printk */ #include <linux/fs.h> / #include <linux/errno.h> /* error codes */ #include <linux/types.h> /* size_t */ #include <linux/proc_fs.h> /* proc file system */ #include <linux/fcntl.h> #include <asm/system.h> /* cli, flags */ #include <asm/uaccess.h> /* copy from/to user */ /*Registers to get qadc access*/ volatile unsigned short * qadcmcr = (unsigned short *)0x40190000; volatile unsigned short * qacr0 = (unsigned short *)0x4019000a; volatile unsigned short * qacr1 = (unsigned short *)0x4019000c; volatile unsigned short * qacr2 = (unsigned short *)0x4019000e; volatile unsigned short * qasr0 = (unsigned short *)0x40190010; volatile unsigned short * qasr1...

Does '!=' equivelent to 'is not'
I'm a bit confusing about whether "is not" equivelent to "!=" if a != b: ... if a is not b: ... What's the difference between "is not" and "!=" or they are the same thing? pirata wrote: > I'm a bit confusing about whether "is not" equivelent to "!=" > > if a != b: > ... > > if a is not b: > ... > > > What's the difference between "is not" and "!=" or they are the same thing? No, they are not the same thing. == and != test to see if the *value* of two variables are the same. Like so: >>> a = 'hello world' >>> b = 'hello world' >>> a == b True a and b both have the value of 'hello world', so they are equal is and is not, however, do not test for value equivalence, they test for object identity. In other words, they test to see if the object the two variables reference are the same object in memory, like so: >>> a is b False a and b are assigned to two different objects that happen to have the same value, but nevertheless there are two separate 'hello world' objects in memory, and therefore you cannot say that a *is* b Now look at this: >>> c = d = 'hello world' >>> c == d True >>> c is d True In this case, they are again the same value, but now the is test also shows that they are the same *object* as well, because...

Re: '^=' and '~='?
Duckhye, According to the doc ( http://xrl.us/befwjx ) they, and one other set of characters, and the mnemonic 'NE' all represent 'NOT EQUAL'. Art ------- On Wed, 11 Feb 2009 16:52:40 -0600, Duck-Hye Yang <dyang@CHAPINHALL.ORG> wrote: >Hello, >What is the difference between '^=' and '~='? > >Thanks, >Duckhye ...

Web resources about - 'cat file' but only if 'file' exist - comp.unix.shell

Resources last updated: 3/9/2016 11:59:54 AM