linux - 如何递归打印列的内容

标签 linux date unix awk sed

我正在 try catch 一列的内容并在满足条件时将其打印出来。多行可以有有效条件。我想全部打印出来。

说明:

cat fileName  


name1 Oct 20 user1@user.com    
name2 Oct 21 user2@user.com    
name3 Oct 19 user3@user.com    
name3 Oct 21 user4@user.com    

因此,如果生日与当前日期匹配,则获取用户的名字并将其发送到 file2,file2 将通过邮件发送给用户。这种功能可以很容易地为一个用户完成,但是我无法从多个用户那里总结出来。

所以今天,我的脚本应该将以下行写入文件。

生日快乐 Name1 NAme2

我将把它作为 HTML 发送到组 ID。

最佳答案

使用 date%b %d 格式获取当前日期,然后使用 grep 提取匹配行。使用 cut 提取第一列。将结果分配给一个数组:

names=($( grep "$(date '+%b %d')" fileName | cut -f1 -d' '))
echo "Happy birthday ${names[@]}"   

关于linux - 如何递归打印列的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33255935/

相关文章:

linux - 将 DATA (Dev-Environments/apps/etc) 分区与 Linux 系统最小尺寸 OS 分区分开的简单方法? Docker 还是 Overlayfs Overlayroot?其他?

linux - 多播 ip 地址 - 在调用 recvfrom 时被阻止

linux - 增加 block 大小时内部碎片会增加吗?

sql - 从字符串中提取日期并将其插入Microsoft SQL Server 2012字段

linux - 使用脚本 bash/expect 保持 ssh session 事件

c - execvp 找不到程序时返回错误

linux - 如何更改所有用户和所有 shell 的路径?

java - 简单日期格式,解析异常

jquery - 在 date_popup drupal 中突出显示当前周

unix - 运行脚本时找不到命令错误消息