使用“ sed”的数组索引

库纳尔·索农(Kunal Sonone)

我正在研究一个shell脚本,该脚本搜索在过去24小时内修改过的目录,然后使用tar压缩它们。

资料夹搜寻:

find /path to log directory/ -maxdepth 1 -type d -mtime +0 

示例输出:

/path to log directory/01_05_2016
/path to log directory/02_05_2016
/path to log directory/03_05_2016
/path to log directory/04_05_2016

截断不必要的字符:

find /path to log directory/ -maxdepth 1 -type d -mtime +0 | tr -d "_" | tr -d "path to log directory"

示例输出:

01052016 02052016 03052016 04052016

使用“ sed”将截断的字符串分隔为单个数组元素:

# Folder search

declare -a array="($(find <0-24 hour directory serach> | <truncate uncecessary character> | sed 's/\([0-9]*\).*/[\1]="\1"/'))"

# Array Printing
echo "Number of Array Elements: "${#array[@]}
echo "array[01052016]: " ${array[01052016]}
echo "array[02052016]: " ${array[02052016]}
echo "array[03052016]: " ${array[03052016]}
echo "array[04052016]: " ${array[04052016]}

示例输出

Number of Array Elements: 4
array[01052016]: 01052016
array[02052016]: 02052016
array[03052016]: 03052016
array[04052016]: 04052016

压缩输出:

LOG_DIR_NAME='<find folder>'

xargs tar -cvzPf /ouput folder/logname.tar.gz  /path to log directory $LOG_DIR_NAME

问题陈述:

通过使用sed命令,我可以将搜索字符串分成单个数组元素。使用此命令

sed 's/\([0-9]*\).*/[\1]="\1"/'

其中[\ 1]定义了我的数组索引,“ \ 1”定义了我的元素。

所需的输出我对获取从索引(0到n)存储的数组元素感兴趣

array[0]: 01052016
array[1]: 02052016
array[2]: 03052016
array[3]: 04052016

在这种情况下,如何自定义数组索引或在不知道起始索引的情况下遍历数组?

请帮忙

谢谢

芒登

首先,您应该将命令简化为:

$ find "/path to log directory/" -maxdepth 1 -type d -mtime +0 | sed 's#.*/##; s#_##g' 
01052016
03052016
04052016
02052016

接下来,要保存为数组,您可以执行以下操作:

array=( $(find "/path to log directory/" -maxdepth 1 -type d -mtime +0 | sed 's#.*/##; s#_##g') )

它将按需要保存在具有数值的数组中,该索引从0开始递增:

$ for i in {0..3}; do echo "$i : ${array[$i]}"; done
0 : 01052016
1 : 03052016
2 : 04052016
3 : 02052016

也就是说,如果您确实需要遍历关联数组,则也可以执行以下操作:

$ declare -a array=( "foo"=>"bar" "baz"=>"bad" )
$ for i in ${!array[*]}; do echo "$i : ${array[$i]}"; done
baz : bad
foo : bar

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用索引数组索引多维 numpy 数组

来自分类Dev

如何使用给定索引索引numpy数组?

来自分类Dev

使用负数作为数组索引

来自分类Dev

使用NSInteger作为数组索引

来自分类Dev

数组搜索不使用索引

来自分类Dev

使用`.size()`作为数组索引

来自分类Dev

使用NSInteger作为数组索引

来自分类Dev

使用对象数组创建索引

来自分类Dev

数组搜索不使用索引

来自分类Dev

如何使用数组索引序列

来自分类Dev

如何使用数组索引张量?

来自分类Dev

使用内容查找数组索引

来自分类Dev

使用索引重建 numpy 数组

来自分类Dev

使用索引遍历 vue 数组

来自分类Dev

使用 jsonpath 解析数组索引

来自分类Dev

使用索引数组并行写入数组

来自分类Dev

使用数组进行数组内索引

来自分类Dev

使用索引数组查找数组的元素(Ruby)

来自分类Dev

在数组中使用数组但丢失索引

来自分类Dev

使用sed和regex从JSON提取数组

来自分类Dev

如何使用gin索引查询postgres数组?

来自分类Dev

如何使用Solr索引哈希数组

来自分类Dev

使用较短的数组查询IndexedDB复合索引

来自分类Dev

使用short作为数组的索引是否安全?

来自分类Dev

熊猫:使用.loc选择索引标签数组

来自分类Dev

使用指针数学代替数组索引

来自分类Dev

使用数组索引的C#性能

来自分类Dev

使用指针数组查找特定索引

来自分类Dev

在PostgreSQL中的JSON数组中使用索引