Re: can you parse and "tail" at once? (and if you can't why not?)
On Mon, Oct 23, 2023 at 01:21:43PM +0530, Pankaj Jangid wrote:
> Another way to do it is,
>
> cat "${IFL}"| cut -d "/" -f7-|sed 's/.description//'
>
> because you already know the prefix, you can count the fields. So "-f7-"
> i.e. 7 onwards. Then use sed to remove the extension.
Whoops! I completely missed the requirement of removing ".description"
in my original answer.
Here's a corrected version:
#!/bin/bash
inputfile=${1-/whatever}
prefix='[info] 123XYZ: /media/user/1234qwer/Algebraic_Geometry04/20231022040239/'
while IFS= read -r line; do
line=${line#"$prefix"}
printf '%s\n' "${line%.description}"
done < <(grep -F -- "$prefix" "$inputfile")
Pankaj's answer is not wrong, but it dropped the "grep" which filters
the lines containing the desired prefix. I'd also add an $ anchor to
the sed regex, and escape the . with backslash so that it becomes
literal. This answer also requires counting the fields by hand each
time the prefix changes, which may or may not be a concern.
Reply to: