find files in sub dir with tag & add "." at the beginning [tag -f "Note" . | xargs -0 {} mv {} .{}]


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting find files in sub dir with tag & add "." at the beginning [tag -f "Note" . | xargs -0 {} mv {} .{}]
# 1  
Old 01-23-2020
find files in sub dir with tag & add "." at the beginning [tag -f "Note" . | xargs -0 {} mv {} .{}]

I am trying find files in sub dir with certain tags using tag command, and add the period to the beginning. I can't use chflags hidden {} cause it doesn't add period to the beginning of the string for web purpose. So far with my knowledge, I only know mdfind or tag can be used to search files with tags in Mac OS x.

my current closest command is this (doesn't work):

Code:
tag -f "Note" . | xargs -0 {} mv {} .{}

Moderator's Comments:
Mod Comment Please wrap your samples/codes in CODE TAGS as per forum rules.

Last edited by Nexeu; 01-24-2020 at 12:48 AM..
# 2  
Old 01-24-2020
Hi,

in order for xargs to use NUL character as separator, the utility before the pipe needs to produce them.

try:

Code:
mdfind -0 -onlyin . "Note" | xargs -0 -I {} echo {}

or
Code:
tag -0 -f "Note" . | xargs -0 -I {} echo {}


Last edited by Scrutinizer; 01-24-2020 at 02:17 AM..
This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 01-24-2020
Hi Scrutinizer,

Thanks for the quick response.

for tag command :
Code:
tag -0 -f "Note" . | xargs -0 -I {} echo {}

It only echo out a list of files including directories. Something like this /dir/dir/dir/file.ext.

So when I try to do:

Code:
tag -0 -f "Note" . | xargs -0 -I {} rename -n 's/^/\./' {}

the out put came out like :
Code:
'/dir/dir/dir/file.ext' would be renamed to './dir/dir/dir/file.ext'

but I want the result to be :
Code:
'/dir/dir/dir/file.ext' would be renamed to '/dir/dir/dir/.file.ext'

For mdfind, I modified the code to be like this to echo out the list:
Code:
mdfind -0 "kMDItemUserTags == 'Note'" | xargs -0 -I {} echo {}

But still no luck of adding '.' to the file only at the beginning.
# 4  
Old 01-24-2020
If you use this:
Code:
s/^/\./

Then the . is added at the beginning of the path.
To add it to the last item in the path, try:
Code:
s|.*/|$0/.|


Last edited by Scrutinizer; 01-24-2020 at 03:13 AM..
This User Gave Thanks to Scrutinizer For This Post:
# 5  
Old 01-24-2020
I tired :
Code:
tag -0 -f "Note" . | xargs -0 -I {} rename -n 's|.*/|$0/.|' {}

It starts to add the '.' to the file, however it removed out the subdirectory completely like this:
Code:
'/dir/dir/dir/dir/file.txt' would be renamed to '/usr/local/bin/rename/.file.ext'

# 6  
Old 01-24-2020
Try this instead:
Code:
s|(.*)/|$1/.|

This User Gave Thanks to Scrutinizer For This Post:
# 7  
Old 01-24-2020
It works! Thank you so much Scrutinizer!

So the solution is as follows:
Code:
tag -0 -f "Note" . | xargs -0 -I {} rename 's|(.*)/|$1/.|' {}

These 3 Users Gave Thanks to Nexeu For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

2. Shell Programming and Scripting

How to replace multiple "&nbsp;" entry with in <td> tag into single entry using sed?

I have the input file like this. Input file: 12.txt 1) There are one or more than one <tr> tags in same line. 2) Some tr tags may have one <td> or more tna one <td> tags within it. 3) Few <td> tags having "<td> &nbsp; </td>". Few having more than one "&nbsp;" entry in it. <tr> some td... (4 Replies)
Discussion started by: thomasraj87
4 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. Shell Programming and Scripting

Find lines with "A" then change "E" to "X" same line

I have a bunch of random character lines like ABCEDFG. I want to find all lines with "A" and then change any "E" to "X" in the same line. ALL lines with "A" will have an "X" somewhere in it. I have tried sed awk and vi editor. I get close, not quite there. I know someone has already solved this... (10 Replies)
Discussion started by: nightwatchrenba
10 Replies

5. Red Hat

files having Script which works behind "who" & "w" commands

Dear All, plz print the path of files which have the script of "who" & "w" commands. thnx in advance. (6 Replies)
Discussion started by: saqlain.bashir
6 Replies

6. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

7. Shell Programming and Scripting

print all the rows from "BUY" Tag with "SELL" with Buy/sell tag at end

hi I have the following input and i want to print all the rows from "BUY" Tag till "SELL" alongwith Buy/sell tag at end of each row ------ INPUT ===== 30/06/2009,NORMAL,ALL,ALL BUY 1,CBLO/020709,T+0,30/06/2009,100.00,3.00,999835643.46,200906300000422,-, 15:04:42,BUY... (5 Replies)
Discussion started by: r_t_1601
5 Replies

8. Shell Programming and Scripting

"find command" to find the files in the current directories but not in the "subdir"

Dear friends, please tell me how to find the files which are existing in the current directory, but it sholud not search in the sub directories.. it is like this, current directory contains file1, file2, file3, dir1, dir2 and dir1 conatins file4, file5 and dir2 contains file6,... (9 Replies)
Discussion started by: swamymns
9 Replies

9. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies
Login or Register to Ask a Question