我正在尝试使用bash将一系列字节从十六进制转换为二进制.但我一直得到(看似随机)"(standard_in)1:语法错误"回复以下代码:
for j in c4 97 91 8c 85 87 c4 90 8c 8d 9a 83 81
do
BIN=$(echo "obase=2; ibase=16; $j" | bc )
echo $BIN
done
Run Code Online (Sandbox Code Playgroud)
我做了一个与dec to bin类似的东西,它完美地工作:
for i in {0..120}
do
KEYBIN=$(echo "obase=2; ibase=10; $i" | bc)
echo $KEYBIN
done
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么它适用于十进制,但不是十六进制?在我看来,语法几乎相同(除非我遗漏了一些非常难的东西.)
想象一下,你有一些包含mp3
文件和子目录的目录,也包含mp3
文件,如:
/music/band1/
/music/band2/
/music/band2/dir1/
/music/band2/dir2/
/music/band3/dir1/
/music/band3/dir2/
/music/band4/
...
Run Code Online (Sandbox Code Playgroud)
我想.m3u
在包含mp3
文件的每个目录中创建一个文件 - 例如:
/music/band1/band1.m3u
/music/band2/band2.m3u
/music/band2/dir1/dir1.m3u
/music/band2/dir2/dir2.m3u
/music/band3/dir1/dir1.m3u
/music/band3/dir2/dir2.m3u
/music/band4/band4.m3u
Run Code Online (Sandbox Code Playgroud)
名称.m3u
的文件将在该目录名.m3u
被创建.(这只是一个示例目录结构.)
我希望很清楚:)
到目前为止,我有这个m3u
从*.mp3
文件生成文件,但只在实际目录中,并按目录命名.
#!/bin/bash\
ls | grep -i mp3 > filelist.txt
mv filelist.txt filelist.m3u
FOLDERNAME=${PWD##*/}
echo $FOLDERNAME
mv filelist.m3u $FOLDERNAME.m3u
Run Code Online (Sandbox Code Playgroud)
应该添加什么来让它看起来递归到每个子目录/music
,如果有另一个子子目录,也看看那里?然后,m3u
在每个子目录中执行-making脚本?
谢谢您的帮助!:)