Note the -i '' in the sed command, I did not want to create a backup of the original files (as explained in In-place edits with sed on OS X or in Robert Lujo's comment in this page). name *.sls -type f) do echo -e "\n$file: " sed 's,foo\.bar,foo/bar/\" baz \"/,g' $file doneĮdit the sed command as needed, once you are ready to make changes: for file in $(find. , is used as the sed delimiter instead of the usual /Īlso note this is to edit a Jinja template to pass a variable in the path of an import (but this is off topic).įirst, verify your sed command does what you want (this will only print the changes to stdout, it will not change the files): for file in $(find.must be escaped to ensure sed does not evaluate them as "any character" The good news is that tcsh autocompletes your files, and quotes them according to the correct archanesyntax.A bit old school but this worked on OS X. Many a program failed utterly when a text field had a quote mark or a leading pace, etc. Similar to other solutions, but using fnmatch.fnmatch instead of glob, since os.walk already listed the filenames: import os, fnmatch def findfiles(directory, pattern): for root, dirs, files in os.walk(directory): for basename in files: if fnmatch.fnmatch(basename, pattern): filename os.path.join(root, basename) yield filename for filename in findfiles('src', '.c'): print 'Found C source. I even have a database test item in all databases I made, called the "O'Reilly" test. Nowadays, we need to support all file names, even "O'Reilly's Army.txt". Also, it's an old habit from the days when you only got 8 chars to say it. Most techies I've worked with use the 3-fingers-on-one-hand-2-on-the-other method, and they like to use short variable name, don't like to comment, and in general cannot be counted on to help with the user doc. Maybe because, unlike most programmers, I can type with ten figures at a normal writing speed - few people need more than 40 words per minute to type as fast as they can compose. ![]() I'm a big fan of English language file names, that is, not something like RSFunc97Stat.txt. It doesn't crap out as soon as it hits the space. Now if your file name is /home/he/Documents/00 - Writing/02 The Rapture of the Maiden/0 - Text/25th/Rapture, pt 1-4, ch 01-20 old.txt, I use the C-shell, as I was a berkeley/Sun user at the Lab, but the same ideas apply in bash. To get it to work on anyįile system, EG NTFS, you need to quote the $PWD. Garbage if you have actual file names, not Unix-style file The problem is $PWD, which results in useless ![]() Is there a faster way to do what I am trying to do than to use find? 2 Answers Sorted by: 6 You can use find /PATH/TO/specificdirectory -size MIN -size -MAX For precise info about what MIN and MAX could be, check man find -size n cwbkMG File uses n units of space, rounding up. However, it is a ton to type, and it is certainly not as fast as using ls with grep. Use the find command to recursively search the directory tree for each specified Path, seeking files that match a Boolean expression written using the terms. This will give me a nice format (It also includes the user, group, size, and last date of access, which are helpful). If I just use find without ls or grep, then it goes faster, but it is a bunch to type: find $PWD/ -type f -name file.name -printf '%M %u %g %s\t%a\t%p\r\n' I can use ls integrated with find and grep to get the output in exactly the format that I want, and I could use something like this: ls -ault `find $PWD/ -type f` | grep file.nameīut this is extremely slow, I'm guessing because two commands are actually running. I would prefer to use ls because it is the fastest, and I would type: ls -alR $PWD/īut this doesn't show the file's path, so if I grep'ed the output, then I would see file permissions, but not the directory from which it originated. I want to do this so that I can grep out what I want, so that when I run the command, I can get just the matching files, their permissions, and their full paths, like: | grep file.name I have done a bit of searching online, and I am trying to find a way to recursively list all files with their absolute path and with their permissions.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |