I am incredibly rusty at shell scripts, but shouldn’t you be able to use the wc (word count) utility to find the number of lines? If so, the script could use ‘wc -l’ to check the number of lines, and spit its output to ‘wc -m’, which should count the number of characters in that output. Store that number to a $var, and call it using 'nl -w$var to ensure the correct number of digits even for files with large numbers of files.
> Begin forwarded message: > > From: Rod Buchanan <[email protected]> > Subject: Re: How to put numbers in front of selected lines? > Date: April 1, 2019 at 10:26:52 AM EDT > To: BBEdit-Talk List <[email protected]> > Reply-To: [email protected] > > > One problem with -w2 is if the file is >= 100 lines it breaks: > > $ nl -w2 -s'. ' ... > > 98. > 99. > 00. > 01. > 02. > > $ nl -nrz -w2 -s'. ' ... > > 98. > 99. > 00. > 01. > 02. > >> On Mar 30, 2019, at 3:04 AM, Christopher Stone <[email protected] >> <mailto:[email protected]>> wrote: >> >> On 03/30/2019, at 02:35, Bill Kochman <[email protected] >> <mailto:[email protected]>> wrote: >>> Chris, you wrote: >>> >>> #!/usr/bin/env bash >>> nl -nrz -w2 -s'. ' >>> >>> That works on all lines. What about if you have blank lines in the >>> document? While it works fine on files that have continuous lines of text, >>> the above indents two spaces and places a period on blank lines. >> >> >> Hey Bill, >> >> The -w2 switch (i.e. -w switch with 2 as its value), designates the width of >> the padded line number. >> >> I think the addition of the period in blank lines is a bug in macOS' version >> of `nl`, because GNU `nl` doesn't have that problem. (The indention will >> vary according to -w.) >> >> >> #!/usr/bin/env bash >> nl -nrz -ba -w3 -s'. ' >> >> This will number ALL lines including blank ones. >> >> >> man nl in the Terminal will get you to the man page for `nl`, so you can see >> what the various switches do. >> >> >> To work around your complaint you can install GNU `nl` with MacPorts or >> HomeBrew. >> >> Or you can use a little `sed` to remove the floating period: >> >> #!/usr/bin/env bash >> nl -nrz -w2 -s'. ' | sed -E 's!^[[:blank:]]+\.!!' >> >> >> -- >> Take Care, >> Chris >> >> >> -- >> This is the BBEdit Talk public discussion group. If you have a >> feature request or need technical support, please email >> "[email protected] <mailto:[email protected]>" rather than posting >> to the group. >> Follow @bbedit on Twitter: <https://www.twitter.com/bbedit >> <https://www.twitter.com/bbedit>> >> --- >> You received this message because you are subscribed to the Google Groups >> "BBEdit Talk" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] >> <mailto:[email protected]>. >> To post to this group, send email to [email protected] >> <mailto:[email protected]>. >> Visit this group at https://groups.google.com/group/bbedit >> <https://groups.google.com/group/bbedit>. > > -- > Rod Buchanan > Kelly Supply Company > 1004 W Oklahoma Ave > Grand Island, NE 68802-1328 > 308 382-5670 > 308 382-8764 x1120 > > > -- > This is the BBEdit Talk public discussion group. If you have a > feature request or need technical support, please email > "[email protected]" rather than posting to the group. > Follow @bbedit on Twitter: <https://www.twitter.com/bbedit > <https://www.twitter.com/bbedit>> > --- > You received this message because you are subscribed to the Google Groups > "BBEdit Talk" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > Visit this group at https://groups.google.com/group/bbedit > <https://groups.google.com/group/bbedit>. -- This is the BBEdit Talk public discussion group. If you have a feature request or need technical support, please email "[email protected]" rather than posting to the group. Follow @bbedit on Twitter: <https://www.twitter.com/bbedit> --- You received this message because you are subscribed to the Google Groups "BBEdit Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/bbedit.
