0

I have doing tons of research and can't seem to figure it out.

I am using sed and trying to process a file of paths

/path/to/somewhere/for-something.rar

I need to remove everything past the last / but not the / itself. Can anyone help me with this? I can never handle sed lol

4
  • It looks like you want to do something that dirname command do. Can you try this one?
    – mrc02_kr
    Nov 14 '19 at 6:44
  • Every line is different. I have a find command that searches for .rar files and another that extracts them. But I need it to show only the folder name for the command to work properly Nov 14 '19 at 6:52
  • That's exactly what dirname do. But to be sure, could you provide examples of input and output?
    – mrc02_kr
    Nov 14 '19 at 7:01
  • Could you say something about the underlying issue in your question, e.g. why you have a file with pathnames in it and whether this is part of solving -another task? Storing pathnames in a file is rarely necessary.
    – Kusalananda
    Nov 14 '19 at 8:37
0

Use dirname:

path=/path/to/somewhere/for-something.rar
dir="$(dirname $path)/"

Or use shell:

dir="${path%\/*}/"

Output:

$ echo "$dir"
/path/to/somewhere/
0

To find all "/..../file.rar" and print "/..../" in a file-of-paths you can use good old grep...

grep -Po '/\S+/(?=\S+\.rar\b)' file-of-paths

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.