首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态匹配shell变量(Darwin BSD)

动态匹配shell变量(Darwin BSD)
EN

Stack Overflow用户
提问于 2016-06-02 05:06:15
回答 1查看 66关注 0票数 1

我有一系列类似以下内容的.csv文件:

代码语言:javascript
复制
Facility, Room, SN, Alert_Start, Alert_End
Foo, Bar, 28g63, 5/16/16 12:24, 5/30/16 12:24
Foo, Bar, 58dfy, 5/11/16 12:25, 5/30/16 12:24
Foo, Bar, dd8f6, 5/27/16 12:25, 5/30/16 12:24
Foo, Bar, 397d2, 5/24/16 12:24, 5/30/16 12:24

每个文件包含一对不同的匹配的"Room“和"Alert_End”值。

我正在尝试将此.csv整理到一个报告中,在该报告中,一周的“房间”和"Alert_End“配对包含在一个文件中,"SN”是唯一显示的其他数据。它需要这样安排:

代码语言:javascript
复制
Room.csv
5/26/16, 5/27/16, 5/28/16, 5/29/16, 5/30/16, 5/31/16, 6/1/16
28g63, 28g63, 28g63, 28g63, 28g63, 28g63, 28g63
58dfy, 58dfy, 58dfy, 58dfy, 58dfy, 58dfy, 58dfy
     , dd8f6,     ,      ,       , dd8f6,
397d2, 397d2, 397d2, 397d2, 397d2, 397d2, 397d2
i58d7,      ,      ,      , i58d7, i58d7, i58d7

下面是尝试进行格式化的代码块:

代码语言:javascript
复制
function organizeText {
        for i in {0..6}; do
                day=$(date -v-${i}d +%Y-%m-%d)
                day2=$(date -v-${i}d +%m/%d/%yy)
                file=/tmp/$day"_$facility".csv
                echo $day > $file
                awk -F "," -v cow=$day2 '$5 ~ cow { print $3 }' "/tmp/$facility.csv" >> $file
        done

        touch "/tmp/master_$facility.csv"

        for i in {0..6}; do
                day=$(date -v-${i}d +%Y-%m-%d)
                paste -d, "/tmp/master_$facility.csv" /tmp/$day"_$facility".csv > "/tmp/master_$facility.csv"
        done
}

每当我尝试运行此命令时,所有'/tmp/$day"_$facility".csv‘文件都包含与该工具相关的SN值的相同完整列表,而不管它们是否与日期匹配。

任何指导都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2016-06-03 03:42:34

问题原来不是我的AWK、Bash或regex代码。

问题出在Microsoft Excel自动格式化和显示日期的方式。

我正在尝试编写正则表达式,以匹配我在Excel打开的.csv文件中看到的内容,该文件的日期格式如下: 5/23/16

但是当我在文本编辑器中打开.csv文件时,日期的格式实际上是这样的: 2016-05-23

我修复了正则表达式,使其与文本编辑器中显示的格式相匹配,然后代码就可以工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37578773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档