awk将错误的变量输出到文件

埃尔·伯多

目的

我试图将字段2中显示的日期分解为变量“年和月”,然后将其作为最后两个新字段打印回到我的文件中。我有一个for循环,因为我有很多文件这样做,最后将得到解决。

问题

AWK在文件末尾为变量之一输出字段3,为另一个变量输出空白。

文件-test.tsv

client  2020-03-15  platform    3096431 2686357 0.868   2544716 0.8220000000000001  2509205 0.8100000000000001  2046915 0.6609999999999999  0.189   0.053   0.0526  0   0.0001  0   0.013   0.009599999999999999    0   0.0031  0   0   0.0005999999999999999   0.37    0.0757  0   0.0365  0.2326  0.025   1238347 0.494   0.494   1270858 0.507   0   0   1   0.302   33  202.5   1270864 0.507   157387  0.063   357414  0.142   723540  0.288

 ##note the tabs in the cut command are correct in my code but might end up as spaces in the post
    for f4 in $(find *.tsv);do
            name=$(echo $f4 | sed -Ee 's/-filename.tsv//')
            month=$(cat $f4 | cut -d "      " -f 2 | awk -F"-" -v OFS='-' '{print $2}')
            year=$(cat $f4 | cut -d "       " -f 2 | awk -F"-" -v OFS='-' '{print $1}')
            awk -v month="$month" -v year="$year" -F"\t" -v OFS='\t' '{print $0,  $month,   $year}' $f4 > $name-dates.tsv
            mv $f4 tsv
    done

电流输出

client  2020-03-15  platform    3096431 2686357 0.868   2544716 0.8220000000000001  2509205 0.8100000000000001  2046915 0.6609999999999999  0.189   0.053   0.0526  0   0.0001  0   0.013   0.009599999999999999    0   0.0031  0   0   0.0005999999999999999   0.37    0.0757  0   0.0365  0.2326  0.025   1238347 0.494   0.494   1270858 0.507   0   0   1   0.302   33  202.5   1270864 0.507   157387  0.063   357414  0.142   723540  0.288   platform

期望的输出

client  2020-03-15  platform    3096431 2686357 0.868   2544716 0.8220000000000001  2509205 0.8100000000000001  2046915 0.6609999999999999  0.189   0.053   0.0526  0   0.0001  0   0.013   0.009599999999999999    0   0.0031  0   0   0.0005999999999999999   0.37    0.0757  0   0.0365  0.2326  0.025   1238347 0.494   0.494   1270858 0.507   0   0   1   0.302   33  202.5   1270864 0.507   157387  0.063   357414  0.142   723540  0.288   03  2020

我尝试过的

许多谷歌和大量的脚本重做,但我似乎无法正确。基于我的变量“ month”和“ year”,我捕获了正确的输入,但是awk命令中的某些内容无法正确传递。任何指导将不胜感激。

埃德·莫顿

只需致电awk即可:

$ awk 'BEGIN{FS=OFS="\t"} {split($2,d,/-/); print $0, d[2], d[1]}' test.tsv
client  2020-03-15      platform        3096431 2686357 0.868   2544716 0.8220000000000001  2509205 0.8100000000000001      2046915 0.6609999999999999      0.189   0.053       0.0526  0       0.0001  0       0.013   0.009599999999999999    0       0.0031      0       0       0.0005999999999999999   0.37    0.0757  0       0.0365  0.2326      0.025   1238347 0.494   0.494   1270858 0.507   0       0       1       0.302       33      202.5   1270864 0.507   157387  0.063   357414  0.142   723540  0.288       03      2020

另请参阅why-is-looping-over-finds-output-bad-practicehttps://mywiki.wooledge.org/Quoteshttp://porkmail.org/era/unix/award.html的部分内容(但并非所有)脚本中的其他其他问题。我强烈建议您运行所有编写的脚本shellcheck(例如https://www.shellcheck.net/),直到您了解基本知识为止。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将awk命令结果输出到变量

来自分类Dev

如何将变量输出到文件?

来自分类Dev

Unix将文件内容输出到变量

来自分类Dev

Python - 将变量输出到 TXT 文件

来自分类Dev

无法将Awk输出到变量,表示权限被拒绝

来自分类Dev

如何将awk结果输出到变量

来自分类Dev

将awk输出到文件并同时打印

来自分类Dev

将PowerShell变量输出到文本文件

来自分类Dev

完全按照变量中的定义将字典输出到文件

来自分类Dev

将PowerShell变量输出到文本文件

来自分类Dev

POWERSHELL:将exe文件输出到变量中

来自分类Dev

错误输出到文件,C ++

来自分类Dev

awk输出到多个shell变量

来自分类Dev

将ostringstream输出到文件

来自分类Dev

将结果输出到文件

来自分类Dev

使用awk将两个模式之间的行输出到不同的输出文件中

来自分类Dev

如何将文件名作为awk输出到列中?

来自分类Dev

无法将正确的结果输出到变量

来自分类Dev

无法将正确的结果输出到变量

来自分类Dev

grunt-contrib-imagemin将文件输出到错误的文件夹

来自分类Dev

如何将命令输出到文件,而不会出现错误的空白文件?

来自分类Dev

将结果(返回值)输出到打印出来的变量instread的JSP标记文件

来自分类Dev

在R中,将列的变量输出到文件的单行中吗?

来自分类Dev

bash-在for循环中,将命令输出到文件并设置变量

来自分类Dev

如何将pygame.image.save输出到变量而不是文件?

来自分类Dev

将结果(返回值)输出到打印出来的变量instread的JSP标记文件

来自分类Dev

比较2个csv文件,仅将差异输出到变量中

来自分类Dev

bash-在for循环中,将命令输出到文件并设置变量

来自分类Dev

如何将两个变量及其值输出到文件

Related 相关文章

热门标签

归档