我需要将字符串转换为某种形式的哈希.这在JavaScript中可行吗?
我没有使用服务器端语言,所以我不能这样做.
我们需要一个模拟关联数组的脚本或类似于Shell Scripting的数据结构的Map,任何主体?
我们刚刚开始一个UNIX类,正在学习各种Bash命令.我们的任务涉及在一个目录下执行各种命令,该目录下面还有许多文件夹.
我知道如何使用以下方法列出和计算根文件夹中的所有常规文件:
find . -type l | wc -l
Run Code Online (Sandbox Code Playgroud)
但是我想知道从那里去哪里才能找到整个目录中最大的文件.我见过一些关于du命令的事情,但是我们还没有学到这一点,所以在我们学到的所有东西中,我认为我们需要以某种方式将它连接到ls -t命令.
请原谅我,如果我的'行话'不正确,我仍然习惯它!
如何仅打印在文件中出现一次的那些行?例如,给定此文件:
mountain
forest
mountain
eagle
Run Code Online (Sandbox Code Playgroud)
输出将是这个,因为该行mountain出现两次:
forest
eagle
Run Code Online (Sandbox Code Playgroud)
相关但不重复:如何在Bash中定义哈希表?
我可以定义和使用bash哈希,但我无法导出它,即使使用-x标志.例如,以下工作用于导出(并测试输出)正常的字符串变量:
aschirma@graphics9-lnx:/$ export animal_cow="moo"
aschirma@graphics9-lnx:/$ bash -c "echo \$animal_cow"
moo
aschirma@graphics9-lnx:/$
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试导出哈希:
aschirma@graphics9-lnx:/$ declare -A -x animals
aschirma@graphics9-lnx:/$ animals[duck]="quack"
aschirma@graphics9-lnx:/$ echo ${animals[duck]}
quack
aschirma@graphics9-lnx:/$ bash -c "echo \${animals[duck]}"
aschirma@graphics9-lnx:/$
Run Code Online (Sandbox Code Playgroud)
似乎嵌套的bash shell在其范围内没有哈希.我也通过手动输入嵌套的bash shell并尝试以交互方式使用哈希来验证这一点.
可能重复:
如何在bash中定义哈希表?
我希望在Linux shell脚本中创建一个哈希映射,它将字符串键与字符串值相关联.有一种简单的方法可以做到这一点吗?
我今天必须编写一个Bash脚本来删除重复文件,使用它们的md5哈希值.我将这些哈希值存储为临时目录中的文件:
for i in * ; do
hash=$(md5sum /tmp/msg | cut -d " " -f1) ;
if [ -f /tmp/hashes/$hash ] ;
then
echo "Deleted $i" ;
mv $i /tmp/deleted ;
else
touch /tmp/hashes/$hash ;
fi ;
done
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但让我想知道:这是一种节省时间的方法吗?我最初想过将MD5哈希存储在一个文件中,但后来我想"不,因为检查给定的MD5是否在这个文件中需要每次都重新读取它".现在,我想知道:使用"在目录中创建文件"方法时它是一样的吗?当同一目录中有大量文件时,Bash [-f]是否检查线性或准常量复杂度?
如果它取决于文件系统,那么tmpfs的复杂性是多少?
我有一个bash数组"RUN_Arr",其值如下所示.如果值相同,我希望脚本继续,否则我想报告它们.
echo "${RUN_Arr[@]}"
"AHVY37BCXY" "AHVY37BCXY" "AHVY37BCXY" "AHVY38BCXY" "AHVY37BCXY" "AHVY37BCXY"
Run Code Online (Sandbox Code Playgroud)
基于上面的数组,我想回应:
No the array values are not same
"AHVY37BCXY" "AHVY38BCXY"
Run Code Online (Sandbox Code Playgroud)
有人可以提出解决方案吗?谢谢.
我想在bash中询问有关变量变量的一些帮助.我已经阅读了一些关于它的文章,但就我而言,我不知道该怎么做.让我看看我的问题:
该数组包含其他数组的名称,我想打印这些数组的值.在内心,我需要变量变量.
#!/bin/bash
declare -a array=(dir1 dir2 dir3)
declare -a dir1=(1 2 3)
declare -a dir2=(a b c)
declare -a dir3=(9 8 7)
for elem1 in "${array[@]}"
do
for elem2 in "${variableVariable[@]}"
do
echo "$elem1 : $elem2"
done
done
Run Code Online (Sandbox Code Playgroud)
输出应该是这样的
dir1 : 1 dir1 : 2 dir1 : 3 dir2 : a dir2 : b dir2 : c dir3 : 9 dir3 : 8 dir3 : 7
测试我的 bash 脚本的同事向我发送了此屏幕截图
他bash从 brew安装。有可能declare没有-A选项bash:5吗?
我用 docker 检查过,bash:5必须有-A:
$ docker run -it bash:5
bash-5.0# declare -A
declare -A BASH_ALIASES=()
declare -A BASH_CMDS=()
Run Code Online (Sandbox Code Playgroud)
bash:3当没有关联数组支持时,屏幕截图类似于输出:
$ docker run -it bash:3
bash-3.2# declare -A
bash: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
Run Code Online (Sandbox Code Playgroud)
是否可以在bash:5没有关联数组支持的情况下进行编译?
这是bash自制程序包的页面,我在./configureFormula ruby 安装脚本部分没有找到任何特殊选项。
我正在为少数人制作生日跟踪器,并且想知道如何将所有 if 语句合并为一个,因为日期和名称是每个 if 语句中唯一不同的内容,其余格式相同。
date=`date +%b-%d`
echo $date
if [ $date == "Sep-09" ]; then
echo "Happy Birthday abc!"
fi
if [ $date == "Oct-11" ]; then
echo "Happy Birthday xyz!"
fi
.
.
.
Run Code Online (Sandbox Code Playgroud)
我想我可以使用位置参数($1 表示日期,$2 表示名称..),但不知道如何将它用于多个日期和名称。或者如果有更好的方法,也很高兴知道。