加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在BASH shell中混洗数组元素的简单方法?

发布时间:2020-12-16 01:11:13 所属栏目:安全 来源:网络整理
导读:我可以在 PHP中执行此操作,但我尝试在BASH shell中工作.我需要取一个数组,然后随机地重新打包内容并将其转储到somefile.txt. 所以给定阵列Heresmyarray,元素a; b; c; d; e; f;它会产生一个输出文件output.txt,它包含元素f; c; b; a; e; d; 元素需要保留分号
我可以在 PHP中执行此操作,但我尝试在BASH shell中工作.我需要取一个数组,然后随机地重新打包内容并将其转储到somefile.txt.

所以给定阵列Heresmyarray,元素a; b; c; d; e; f;它会产生一个输出文件output.txt,它包含元素f; c; b; a; e; d;

元素需要保留分号分隔符.我已经看过很多bash shell数组操作,但似乎没有什么比这个简单的概念更接近.感谢您的任何帮助或建议!

如果您只想将它??们放入文件中(使用重定向>)
$echo "a;b;c;d;e;f;" | sed -r 's/(.[^;]*;)/ 1 /g' | tr " " "n" | shuf | tr -d "n"
  d;a;e;f;b;c;

$echo "a;b;c;d;e;f;" | sed -r 's/(.[^;]*;)/ 1 /g' | tr " " "n" | shuf | tr -d "n" > output.txt

如果要将项目放在数组中

$array=( $(echo "a;b;c;d;e;f;" | sed -r 's/(.[^;]*;)/ 1 /g' | tr " " "n" | shuf | tr -d " " ) )
$echo ${array[0]}
e;
$echo ${array[1]}
d;
$echo ${array[2]}
a;

如果您的数据有& #abcde;

$echo "a;&#abcde;c;d;e;f;" | sed -r 's/(.[^;]*;)/ 1 /g' | tr " " "n" | shuf | tr -d "n"
d;c;f;&#abcde;e;a;
$echo "a;&#abcde;c;d;e;f;" | sed -r 's/(.[^;]*;)/ 1 /g' | tr " " "n" | shuf | tr -d "n"
&#abcde;f;a;c;d;e;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读