Move File Containing More Than two "-" at 3rd Line To New Directory


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Move File Containing More Than two "-" at 3rd Line To New Directory
# 15  
Old 05-14-2015
HOW did it miss the purpose?
This User Gave Thanks to RudiC For This Post:
# 16  
Old 05-14-2015
Sorry, I am trying to move file containing more than two hyphens - at the 3rd line of each files to a new directory as a try-out first. But the commands seemed to be also moving files less than two hyphens and it only moved 14 of them out of 600 thousands files. The folder is actually a "dict" folder. So, there's at least hundred of files containing less than two hyphens like killer.txt, teaser.txt, thriller.txt but it only move 14. [In other words, hyphens are to help me sort words that has different amount of sounds]

I worry the command might not be able to read my txt format. But, they are all openable in Terminal using cat
# 17  
Old 05-14-2015
Is it possible that there are only 14 files out of 600000 whose file names start with "file"? That's what the OS selected based on the file* parameter to awk.

Try
Code:
awk 'FNR==3 {printf "mv %s %dH/\n", FILENAME, gsub ("-", "&") }' *

and pipe the result through sh, if happy. May be lengthy, though.
This User Gave Thanks to RudiC For This Post:
# 18  
Old 05-14-2015
I think that make sense Smilie . I only seem to have 14 files that starts with "file".
I tried the command and I have this result. I probably have to use "for file in" or "find" [Sorry my coding knowledge is really bad..]

Code:
-bash: /usr/local/bin/awk: Argument list too long
-bash: /bin/sh: Argument list too long

# 19  
Old 05-14-2015
Use smaller groups of files, e.g. aa*, ab*, ac*, etc. You can create these with nested for loops.
This User Gave Thanks to RudiC For This Post:
# 20  
Old 05-14-2015
It looks like awk on OS X has a maximum number of open files (not counting standard input or standard output) of 17. I think we can create an awk script for you that will be able to create shell scripts that can move the files to separate directories fairly efficiently. But, to do that I need answers to a a few more questions:
  1. Will there ever be more than 15 hyphens on the 3rd line of any of the files that are to be moved? If yes, what is the maximum number of hyphens that appear on those lines in any of your files?
  2. If I understand correctly, your filenames can contain <hyphen>, <space>, and <tab> characters. Will any of your filenames contain <dollar-sign>, <double-quote>, <newline>, or <single-quote> characters? If yes, which ones?
  3. Are any of the files to be moved linked to each other?
  4. Will the target directories be on the same filesystem as the source directory? (Note that if they are on the same filesystem, moving the files will be MUCH faster since the new filename can be linked to the old filename and the old filename unlinked without actually having to copy the file contents.)
This User Gave Thanks to Don Cragun For This Post:
# 21  
Old 05-15-2015
@RudiC : You mean I should regroup them by moving into folders like aa, ab, ac and etc?

@Don Cragun : I have a word file named Pneumonoultramicroscopicsilicovolcanoconiosis.txt which has 18 hyphens on third line Smilie
Code:
[noo-muh-noh-uhl-truh-mahy-kruh-skop-ik-sil-i-koh-vol-key-noh-koh-nee-oh-sis, nyoo-]  /ˈnu mə noʊˌʌl trəˌmaɪ krəˌskɒp ɪkˈsɪl ɪˌkoʊ vɒlˌkeɪ noʊˌkoʊ niˈoʊ sɪs, ˈnyu-/

I m not sure if other files also has more than 15. I can't seem to find a command that could search whether my files has more than 15 hyphens at 3rd line or not. Smilie

And the files have IPA alphabets and characters you'd mentioned like "$", <Double quotes>, "<", ">" and etc. Seems like it has almost all characters since its a dictionary folder Smilie

Fortunately, none of them are linked to one another. They are all individual txt files.

Targeted directories could be in same directories but there's no folders yet in that Folder. Probably have to mkdir
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. 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

3. Shell Programming and Scripting

Failure: if grep "$Var" "$line" inside while read line loop

Hi everybody, I am new at Unix/Bourne shell scripting and with my youngest experiences, I will not become very old with it :o My code: #!/bin/sh set -e set -u export IFS= optl="Optl" LOCSTORCLI="/opt/lsi/storcli/storcli" ($LOCSTORCLI /c0 /vall show | grep RAID | cut -d " "... (5 Replies)
Discussion started by: Subsonic66
5 Replies

4. Shell Programming and Scripting

Move a line containg "char" above line containing "xchar"

Okay, so I have a rather large text file and will have to process many more and this will save me hours of work. I'm not very good at scripting, so bear with me please. Working on Linux RHEL I've been able to filter and edit and clean up using sed, but I have a problem with moving lines. ... (9 Replies)
Discussion started by: rex007can
9 Replies

5. 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

6. 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

7. UNIX for Dummies Questions & Answers

look for file size greater than "0" of specific pattern and move those to another directory

Hi , i have some files of specific pattern ...i need to look for files which are having size greater than zero and move those files to another directory.. Ex... abc_0702, abc_0709, abc_782 abc_1234 ...etc need to find out which is having the size >0 and move those to target directory..... (7 Replies)
Discussion started by: dssyadav
7 Replies

8. UNIX for Dummies Questions & Answers

script works well but displays " line 6: =: No such file or directory"

strange :) can you tell why?:cool: #!/bin/bash echo " enter your age " read age if ; then echo " you do not have to pay tax " elif ]; then echo " you are eligible for income tax " else echo " you dont have to pay tax " fi (3 Replies)
Discussion started by: me.
3 Replies

9. 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

10. 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