当前位置: 首页 > 知识库问答 >
问题:

使用awk或sed在文件的第一列中添加增量日期

胡俊贤
2023-03-14
1,2,3,4
3,4,5,6
4,7,8,9
1950/01/01,1,2,3,4
1950/02/01,3,4,5,6
1950/03/01,4,7,8,9
awk -v date="$(date -d '1950/01/01' '+%m/%d/%Y')" -F"," 'BEGIN { OFS = "," }  ; {print date, $0}' inout.csv 

共有1个答案

颜光临
2023-03-14

使用gawk

输入

$ cat file
1,2,3,4
3,4,5,6
4,7,8,9

输出

$ awk -v date="$( date -d '1950/01/01' '+%s' )" '{print strftime("%Y/%d/%m",date)","$0; date+=86400}' file
1950/01/01,1,2,3,4
1950/02/01,3,4,5,6
1950/03/01,4,7,8,9
 awk -v date="$( date -d '1950/01/01' '+%s' )" '{ # call awk set var date with timestamp

        print strftime("%Y/%d/%m",date) "," $0;   # print date, sep comma and current line 
        date+=86400                               # one day = 86400 seconds, just increment
 }
 ' file
 类似资料:
  • 我有一个大约有500行信息的文本文件。 有没有什么方法可以使用awk和sed实现这一点呢?

  • 我有一个多行匹配的pcregrep命令,我想把它转换成awk或sed命令,因为我需要它在一台没有pcregrep的机器上(OS X)。 原始命令: 它输出包含字符串“baseTX”的接口名称(这是我发现的唯一可靠地找出MacBook上以太网接口名称的方法)。对我来说是“en4”。 输入文本如下所示: 我怎么能用awk或se抓取“en4”?我试了一个小时,但我只是不擅长se和awk。

  • 问题内容: 将被转换成“输入”有用的“所需的输出”? 输入项 所需的输出 问题答案: 正确对齐的一个技巧是使用:

  • 问题内容: 我的将日期添加一天的代码返回添加日期之前的日期: 添加一天之后的日期应滚动到下个月: 我以前使用过非常相似的代码,我在这里做错了什么? 问题答案: 对于PHP 5.2.0+,您还可以执行以下操作:

  • 问题内容: 我想在两种模式之间添加一些大代码: File1.txt infile.txt 我想在 第一 和 第二 之间添加 File1.txt 内容: 所需输出: 我可以使用sed命令使用两种模式进行搜索,但是我不知道如何在它们之间添加内容。 问题答案: 由于代表 读取文件 ,请使用: 您可以在此处找到一些信息:使用’r’命令读取文件。 为就地版本添加(即)。 要执行此操作,无论字符大小写如何,均

  • 问题内容: 我正在从AWK编程语言学习awk,但其中一个示例存在问题。 如果我想在$ 2等于一个值的情况下打印$ 3(例如),则我使用的是此命令,它可以正常工作: 但是,当我用另一个搜索条件(例如)代替1时,该命令不起作用: 它不返回任何输出,并且我确定输入文件中存在“ findtext”。 我也试过了,但是不起作用: 这是我的测试文件“ test”,它有9行和8个字段,以空格分隔: 这是我的工作