You didn’t know the Finder has a batch-rename capability? That’s because the option is disguised as a seemingly useless Rename command in the File menu. A brief mental facepalm moment was followed by the relieved realization that the Finder could do it for me with its batch-rename capability. When I was preparing inline graphics-the little images embedded in a line of text-for my Take Control of Numbers book, I was almost finished when I remembered that the filenames needed to adhere to a naming convention: they must end with _inline. #1627: iPhone 14 lineup, Apple Watch SE/Series 8/Ultra, new AirPods Pro, iOS 16 and watchOS 9 released, Steve Jobs Archive.#1628: iPhone 14 impressions, Dark Sky end-of-life, tales from Rogue Amoeba.#1629: iOS 16.0.2, customizing the iOS 16 Lock Screen, iPhone wallet cases, meditate for free with Oak.#1630: Apple Books changes in iOS 16, simplified USB branding, recovering a lost Google Workspace account.#1631: iOS 16.0.3 and watchOS 9.0.2, roller coasters trigger Crash Detection, Medications in iOS 16, watchOS 9 Low Power Mode.If this post was useful, Say thanks with a coffee. Notice that first group with the ‘hat’ symbol to negate the node_modules folder and it’s content? What a lovely, simple and powerful ZSH function. So if you wanted to do our prior command but dodge files in node_modules it could be amended thus for a test run, then again without the -n when you are happy: zmv -n '(^node_modules)/(**/)(*).css' '$1_$2.scss' If you want a few more examples, Filipe has some more examples, including how to ignore folders and more. Zmv is obviously capable of much more but if it’s something you only need to do once every so often this will give you enough to go on!. Then, once you are happy everything is as you need, run it again without the flag. So we would first run that prior command like this: zmv -n '(**/)(*).css' '$1_$2.scss'Īnd that will give you a display of what is going to happen to each file. You can run zmv commands first with the -n flag. Now, if you went with that prior command, typed it in and pressed enter, zmv will do its thing, and you’d better keep everything crossed you got everything right! Thankfully, zmv lets you perform a ‘dry run’. In my case this was because I wanted them as Sass partials, which are designated with the underscore. Each thing we ‘captured’ is represented by a $ in the second set of quotes, so you can see in this case that not only did I change the file extension, I added a proceeding _ before it. Then we can manipulate what we have ‘captured’ in the second set of quotes. Each is within a set of parenthesis, the first is the file path, (**/) and the second the file name, (*). Within the first one, zmv is letting us do two sets of replacements/groups. Zmv lets us swap one thing with another, so everything in the first set of quotes with everything in the second set of quotes. But don’t go doing that yet!! zmv '(**/)(*).css' '$1_$2.scss' The basics of how zmv works First, get into a parent folder of all the files you want to rename. Now, I’ll show you the command that did my bidding, and then hopefully explain what’s going on. First you will need to load the zmv function by running autoload zmv from the command prompt. So assuming you have ZSH, let’s take a look at what we can do. It’s the default shell in macOS these days so if you are on Catalina onwards – you already have it. So, as zmv requires ZSH shell, at the risk of stating the obvious, you’ll need a ZSH shell. So, to reiterate my my use case, I had a project where I wanted to change all files ending in. Turns out this is a great little tool I’d not used before, and as it met my needs beautifully, I thought I’d give a brief overview for my future self and any passing travellers. It was suggested I look at zmv which works in the ZSH shell. So I happened to ask in the Sublime Text Discord how people did this. I didn’t fancy renaming them ‘by hand’, and the Finder batch rename is only really useful when all the files are in one folder and/or you can easily select them all. There were around a hundred files nested in many different sub-folders. I had a situation today where I wanted to migrate a large-ish codebase from standard CSS files to Sass files with a *.scss file extension. This is a quick tip rather than an involved tutorial.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |