Shell日常使用记录

一、使用find查找某个日期以后修改的文件

1
find . -newermt "2022-03-22" -type f

此处的日期可以使用变量替换实现动态查询
示例:

1
2
curr_date=$(date "+%Y-%m-%d")
find . -newermt "${curr_date}" -type f

二、Shell中使用Map对象

1、Map声明

方式一:

1
2
declare -A myMap
myMap["key"]="value"

方式二:

1
declare -A myMap=(["key1"]="value1" ["key2"]="value2")

2、获取Map的大小

1
echo "${#myMap[@]}"

3、输出所有的Key

1
echo "${!myMap[@]}"

4、输出所有的Value

1
echo "${myMap[@]}"

5、遍历Map对象

1
2
3
4
5
6
7
8
9
10
11
12
# 遍历所有的key
for key in ${!myMap[@]};
do
echo "key=${key}"
echo "value=${myMap[${key}]}"
done

# 遍历所有的value
for value in ${myMap[@]};
do
echo "value=${value}"
done

三、使用awk实现数据分组统计

数据实例:

1
2
3
4
5
苹果|1
香蕉|2
苹果|1
香蕉|2
苹果|1

1、对数据分组后统计出现次数

1
2
3
# -F 指定分隔符为 |
# count[$1] 按照第一列数据进行分组统计
awk -F '|' '{count[$1]++;} END {for(i in count) {print i "=" count[i]}}' test.txt

Shell日常使用记录
https://probiecoder.cn/shell/common.html
作者
duwei
发布于
2025年4月22日
许可协议