I've found several examples of extractions before a single character and examples of extracting numbers, but I haven't found anything about extracting characters before numbers.
My question: Some of the strings I have look like this:
SLA SchoolTemplate- UL
TECH201 SyllabusTemplate-8wkTestClone ID17
In cases where the string doesn't contain the data I want, I need it to be skipped. The desired output would be:
SLA School Template - UL & Test Clone ID17 would be skipped.
I imagine the process being something to the effect of:
Extract text before " "
Condition - Check for digits in the string
Extract text before digits and assign it to a variable x
Extract digits and assign to a variable y
Concatenate $x"-"$y and assign to another variable z
More information: The strings are extracted from a line in a couple thousand text docs using a loop. They will be used to append to a hyperlink and rename a file during the loop.
#!/bin/sh# my files are named 1.txt through 9999.txt i both # increments the loop and sets the filename to be searched
i=1while[ $i -lt 10000]do
x=$(head -n 31 $i.txt | tail -1| cut -c 7-)if[!-z "$x"-a "$x"!=" "];then# I'd like to insert the hyperlink with the output on the# same line (1.txt;cj101 Syllabus Template - 8wk;www.link.com/cj101)
echo "$i.txt;$x">> syllabus.txt
# else# rm $i.txtfi
i=`expr $i + 1`
( 6 months ago )
sed for printing lines starting with capital letters followed by digits. It also adds a - between them:
sed -n 's/^\([A-Z]\+\)\([0-9]\+\) .*/\1-\2/p' input