Split "-n" unknown option

 
Thread Tools Search this Thread
Homework and Emergencies Emergency UNIX and Linux Support Split "-n" unknown option
# 1  
Old 09-28-2016
Split "-n" unknown option

Hello,

I am trying to run a third party script. I have no idea what is the purpose of this below split command. But it throws an error saying invalid option -n.

Please comment.


Code:
cat input
@a1101:00000630
TTTTTCTGATAAGCTGGTTCTCACTTCTGTTACTCCATCTTCTTCGGCACC
+
AAAAAFFD3DDDFGFF1FGGDFDAGFHHBGHCEGDG11BA2221D00AAEF
@a1101:00000924
GGAAGAAAAGGACTCTGACAGCATGGAGGACACGGGCCCTTATTCCATCAA
+
111>11CBFF?C1GFGCGFGFG0BFC1BAEECGC0EE//AA1AADBFGFDD


Code:
split -n r/1/4 input
split: invalid option -- 'n'
Try `split --help' for more information.



My split version - split (GNU coreutils) 8.4

Thank You

Last edited by jacobs.smith; 09-28-2016 at 10:16 AM..
# 2  
Old 09-28-2016
Perhaps we would have a better chance of helping you if you told us what operating system successfully runs this third party script. And, it would probably help even more if you told us what output you hope to produce from the sample input file you provided.

According to the standards, the split -n option takes a numeric option-argument that specifies the number of digits to be placed in the names of the output files produced. The option-argument your script is providing (r/1/5) does not appear to be a numeric value to me, so it is no wonder that you are getting a diagnostic message (although that diagnostic is not what I would have expected).
This User Gave Thanks to Don Cragun For This Post:
# 3  
Old 09-28-2016
man split for split (GNU coreutils) 8.25 says

Quote:
-n, --number=CHUNKS
generate CHUNKS output files; see explanation below
.
.
.

CHUNKS may be:
N split into N files based on size of input
.
.
.
r/K/N likewise but only output Kth of N to stdout
What does your man split tell you about the -n option?
# 4  
Old 09-28-2016
Hi.

I'd guess that an alias or command named split occurs in the PATH before the system split,

What are the results of (with bash):
Code:
command -V split
which split

If it's not:
Code:
$ which split
/usr/bin/split

$ command -V split
split is /usr/bin/split

then you're not getting the GNU split.

The version of split on my system is: split (GNU coreutils) 8.23

Best wishes ... cheers, drl

Last edited by drl; 09-28-2016 at 05:38 PM..
# 5  
Old 09-28-2016
Thank you all.

The developer replied back with an alternate solution.

In 8.4 version of split, there is no option of -n.

Thanks
# 6  
Old 09-29-2016
So, just upgrade to latest coreutils version.

What -n r/K/N does is print every K/Nth line. If K = 1 and N =2, you the first line, then every 2nd line after to the end of the stream. With K = 1 and N = 4, you get the first line, then every 4th line after. This is easy enough to replicate with any of the other tools. I think sed would be the best, but my sed-foo is weak, so I'll use awk.
Code:
split() { 
 if [ "$1" = "-n" -a "${2:0:1}" = "r" ]; then
   local k="${2:2:1}"
   local n="${2##*/}"
   shift; shift;
   if [ "${1#-}" != "$1" ] ; then
     echo >&2 "Warning: additional options to split need to be handled by this function"
   fi
   awk -v k=$k -v n=$n '(NR%n)==(k%n)' "$@"
 else
   command split "$@"
 fi
}

I tested the above code using a 3-way split against a large input file and compared it to GNU split v 8.21.

If they pass other options to split, you'll have to implement those or work around them.
This User Gave Thanks to otheus For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

8 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. Solaris

Unknown Disks "offline or reservation conflict"

Hi All, I am a RH Linux admin that recently started working at a company with a number of SUN Servers so it's been an interesting transition. Considering the last person left with very little documentation left behind so I have been picking up most issues half complete, or troubleshot. ... (7 Replies)
Discussion started by: MobileGSP
7 Replies

3. Red Hat

Sendmail saying "user unknown" after setting up MX

Hi Friends, I set up the sendmail in my perosnal home lab. I am using mutt to send the email in between the machines. Everything is working fine if i send email like <username>@<hostname>. Now i set up the MX record for my domain "home.com" and then i was trying to send the email to like... (2 Replies)
Discussion started by: Rohit Bhanot
2 Replies

4. UNIX for Dummies Questions & Answers

What is the meaning of "-s" option in "if" statement?

Hi Guys, I'm sorry but I can't find answer for this, what is the meaning of -s option in "if" statement on unix scipting. Please see sample below: opath=/home/output for i in N1 N2 N3 N4 do echo $i if then grep $i $opath/N5_CRAI > $opath/N5_$i.crai chmod 777 $opath/N5_$i.crai ... (7 Replies)
Discussion started by: rymnd_12345
7 Replies

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

6. Shell Programming and Scripting

if returns "unknown test operator"

Greetings, using ksh on Solaris, I am trying to identify the current version of a package installed on multiple servers using if statement in a precursor to upgrading. I have searched the forums and have found many hits, reviewed 3 pages and have tried the different variations noted there. Also... (3 Replies)
Discussion started by: 22blaze
3 Replies

7. Shell Programming and Scripting

read -p "prompt text" foo say "read: bad option(s)" in Bourne-Shell

Hallo, i need a Prompting read in my script: read -p "Enter your command: " command But i always get this Error: -p: is not an identifier When I run these in c-shell i get this error /usr/bin/read: read: bad option(s) How can I use a Prompt in the read command? (9 Replies)
Discussion started by: wiseguy
9 Replies

8. UNIX for Advanced & Expert Users

unknown error message "sh: No: not found"

I am getting this error message (sh: No: not found) and I have no idea what line in my unix script its coming from or what it means. Can anyone help? thanks, Cindy (2 Replies)
Discussion started by: cindytucci
2 Replies
Login or Register to Ask a Question