在bash中使用jq处理JSON文件

liv2hak

我有以下bash脚本

counter=0
for file in /home/ec2-user/Workspace/events_parts/*
do
        counter=$[counter + 1]
        event=$(cat $file | jq '.Event')
        echo $event
        if [ "$event" = "Page Exceeded" ]  || [ "$event" = "Reporting Time" ]; then
                echo "Coming Here"
                jq ".url = \"$(jq '.Message' $file | sed 's/.*proxy=\([^&]*\).*/\1/')\"" $file  > events_parts/out_$file
        else
                jq ".url = null" $file > events_parts/out_$file
        fi
done

它会处理一组JSON文件,我想将其重定向到具有out_ $ input_file_name的文件名。但是变量文件会打印出整个路径,而不仅仅是文件名(例如/home/ec2-user/Workspace/events_parts/input.json)。如何从中仅获取“输入文件名”?

赛勒斯

试试这个:

file="/home/ec2-user/Workspace/events_parts/input.json"
filename="$(basename "$file")"
echo "$filename"

输出:

input.json

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章