Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.user > #205945

re: Bash file to variable string problem -- must be simple. What am I missing?

From deb <deb@rangingthoughts.org>
Newsgroups linux.debian.user
Subject re: Bash file to variable string problem -- must be simple. What am I missing?
Date 2019-03-03 03:50 +0100
Message-ID <xxpmq-6ob-1@gated-at.bofh.it> (permalink)
References <xxnDY-5kl-9@gated-at.bofh.it> <xxnNE-5D7-11@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

On 3/2/19 8:07 PM, Roberto C. Sánchez wrote:
> On Sat, Mar 02, 2019 at 07:56:58PM -0500, deb wrote:
>>     This has to be simple and I'm just missing it.
>>
>>     If I pull a filename from a temp file into a variable, I can ls it fine.
>>
>>     If I cut off the extension, and tack on my own SAME EXT, ls no longer
>>     works.
>>
>>     (The actual script is more elaborate, loading vlc , etc -- but this
>>     summarizes & shows my issue)
>>
>>     # mp4file.txt holds just 'long file with spaces.mp4'
>>
>>     fname=$(<mp4file.txt)
>>
>>     # echo $fname shows the right filename.mp4 string
>>
>>     # works
>>     ls -al "$fname"
>>
>>     # Cut off the extension.
>>     fname=`echo $fname | rev | cut -d. -f2 | rev`
>>
>>     # echo $fname shows the filename sans '.mp4'
>>
>>     # THIS LS FAILS, WITH FILE NOT FOUND (but actually reports the exact
>>     string that worked above, but not being found here).
>>
>>     ls -al "$fname".mp4
>>
>>     ls: cannot access 'long file with spaces.mp4': No such file or directory
>>
> I cannot replicate the behavior you describe.  Here is how it looks for
> me:
>
> root@chroot:~# touch "long file with spaces.mp4"
> root@chroot:~# echo "long file with spaces.mp4" >mp4file.txt
> root@chroot:~# cat mp4file.txt
> long file with spaces.mp4
> root@chroot:~# ls -l
> total 4
> -rw-r--r-- 1 root root  0 Mar  3 01:02 long file with spaces.mp4
> -rw-r--r-- 1 root root 26 Mar  3 01:02 mp4file.txt
> root@chroot:~# fname=$(<mp4file.txt)
> root@chroot:~# ls -al "$fname"
> -rw-r--r-- 1 root root 0 Mar  3 01:02 long file with spaces.mp4
> root@chroot:~# fname=`echo $fname | rev | cut -d. -f2 | rev`
> root@chroot:~# ls -al "$fname".mp4
> -rw-r--r-- 1 root root 0 Mar  3 01:02 long file with spaces.mp4
>
> What version of bash are you using?
>
>>     ------------------------------------------------------
>>
>>     It is not:
>>
>>     * a special character thing,
>>
>>     * a carriage return thing,
>>
>>     * a character case thing,
>>
>>     * not helped with './' or '~/' added in front of the filename.
>>
>>     * It's the same string in both spots.
>>
>>     Any thoughts folks?
>>
> I am not sure about the overall problem, but I can say I would replace
> this:
>
> fname=`echo $fname | rev | cut -d. -f2 | rev`
>
> with this:
>
> fname=$(basename "$fname" .mp4)
>
> Regards,
>
> -Roberto
>
*
*

*Thank you Roberto.*


# Cut off the extension.
# fname=`echo $fname | rev | cut -d. -f2 | rev`

fname=$(basename "$fname" .mp4)

^ this does work for the *ls*, but I do not know that it will be a .mp4.


(It could be a .mkv, .webm, .ogg, .mp4, etc.)

What is certain is the filename to  the left of the final '.'.

So I was building up the different choices to file test for, hence the 
fname=`echo $fname | rev | cut -d. -f2 | rev`




I'm running:

cat /etc/issue
9.8

bash --version
GNU bash, version 4.4.12(1)-release (x86_64-pc-linux-gnu)








Back to linux.debian.user | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Bash file to variable string problem -- must be simple. What am I  missing? deb <deb@rangingthoughts.org> - 2019-03-03 02:00 +0100
  Re: Bash file to variable string problem -- must be simple. What am  I missing? Roberto C. Sánchez <roberto@debian.org> - 2019-03-03 02:10 +0100
    re: Bash file to variable string problem -- must be simple. What am I  missing? deb <deb@rangingthoughts.org> - 2019-03-03 03:50 +0100
      re: Bash file to variable string problem -- must be simple. What am  I missing? "der.hans" <deb-user@LuftHans.com> - 2019-03-03 04:40 +0100
        [SOLVED] Re: Bash file to variable string problem -- must be simple.  What am I missing? deb <deb@rangingthoughts.org> - 2019-03-03 16:10 +0100
      Re: Bash file to variable string problem -- must be simple. What am  I missing? David Wright <deblis@lionunicorn.co.uk> - 2019-03-03 06:10 +0100
        Re: Bash file to variable string problem -- must be simple. What am I missing? "Thomas Schmitt" <scdbackup@gmx.net> - 2019-03-03 08:50 +0100
          Re: Bash file to variable string problem -- must be simple. What am  I missing? David Wright <deblis@lionunicorn.co.uk> - 2019-03-03 16:40 +0100
            Re: Bash file to variable string problem -- must be simple. What am I missing? "Thomas Schmitt" <scdbackup@gmx.net> - 2019-03-03 18:50 +0100
            Greg: Re: Bash file to variable string problem -- must be simple.  What am I missing? deb <deb@rangingthoughts.org> - 2019-03-04 14:40 +0100
            Re: Bash file to variable string problem -- must be simple. What am  I missing? Greg Wooledge <wooledg@eeg.ccf.org> - 2019-03-04 14:40 +0100
          [SOLVED II] (Thomas) Re: Bash file to variable string problem -- must  be simple. What am I missing? deb <deb@rangingthoughts.org> - 2019-03-03 19:20 +0100
            Re: Bash file to variable string problem -- must be simple. What am I missing? "Thomas Schmitt" <scdbackup@gmx.net> - 2019-03-03 22:50 +0100
            Re: Bash file to variable string problem -- must be simple. What am  I missing? David Wright <deblis@lionunicorn.co.uk> - 2019-03-04 09:40 +0100
              David - Re: Bash file to variable string problem -- must be simple.  What am I missing? deb <deb@rangingthoughts.org> - 2019-03-04 15:10 +0100
                Re: David - Re: Bash file to variable string problem -- must be  simple. What am I missing? Greg Wooledge <wooledg@eeg.ccf.org> - 2019-03-04 15:40 +0100

csiph-web