使用 sysdate 开发唯一名称列表

使用 sysdate 开发唯一名称列表

我有一个包含适用于它们的 ID 和名称的文件,如下所示:

1234|abc|cde|fgh
5678|ijk|abc|lmn
9101|cde|fgh|klm
1213|klm|abc|cde

我需要一个仅包含以下内容的文件独特的名字作为一个列表。

输出文件:

abc|sysdate
cde|sysdate
fgh|sysdate
ijk|sysdate
lmn|sysdate
klm|sysdate

其中 sysdate 是当前处理的时间戳。

答案1

cut -f2- -d\| file.txt | tr \| '\n' | sort -u | sed 's/$/|sysdate/' 
  • cut从输入中提取列,-d告诉它要使用什么分隔符,-f指定我们想要哪些列。因此,这里我们提取从 2 开始的每一列|作为分隔符,它需要反斜杠,因为|在 shell 中有特殊含义
  • tr音译,即|用换行符替换所有的
  • sort -u排序并丢弃重复项
  • sed s///是替换,这里将行尾 ( $) 替换为|sysdate

要包含实际日期,只需将最后一个条目更改为

sed 's/$/|'"$(date)"/

其中$()是命令替换,它将命令替换为其输出。

相关内容