gpt4 book ai didi

linux - 如何提取多个值并在文件中打印正确的输出?

转载 作者:太空宇宙 更新时间:2023-11-04 11:47:12 24 4
gpt4 key购买 nike

我想从文件名中提取多个值,并在 1 行中以特定顺序将其提供给 *.csv 文件(用分号分隔)。

不幸的是,它只是将日期放在文件中,而其他值直接放在 shell 中,就像您使用回显命令一样

activemq
aomaap-report
aomaap-stats
5.14.1
5.14.1.rar
1.1.2
1.1.2.war
2.1.1
2.1.1.war
intil10377.echbruedom.local

日期显示在我的 *.csv 文件中:

Tue Jul 30 10:44:44 CEST 2019
~
~
~
~
~
~
~
~

这是我的实际命令。ls -1 $path | grep -E ^.*ar$ | grep -Eo '[A-Za-z0-9_]{1,}...\w\w\w\w'; ls -1 $路径 | sed -n 's/.*-\(.*\)\..*/\1/p';主机名;日期 > test4.csv

我希望所有值都在一行中并在我的文件中排序。像这样:

activemq;5.14.1;intil10377;Jul 30 10:44:44
~
~
~
~
~

有人能帮帮我吗?提前谢谢..

最佳答案

{ ls -1 $path | grep -E ^.*ar$ | grep -Eo '[A-Za-z0-9_]{1,}...\w\w\w\w'; ls -1 $path | sed -n 's/.*-\(.*\)\..*/\1/p'; hostname; date; } | tr '\n' ';' | sed 's/;$/\n/' > test4.csv
  • 将整个命令括在 { } 大括号内以捕获所有命令的输出
  • 使用 tr '\n' ';' 将所有换行符替换为 ;
  • 然后使用 sed 's/;$/\n/'
  • 将最后一个 ; 替换为换行符
  • 将输出重定向到 test4.csv 文件
  • 记得给变量加上引号。 ls -1 $path 看起来不安全,更好 ls -1 "$path"
  • 使用 find 可能优于使用 ls。你可以用一些 find "$path"\! -name '*ar' -a -regex "something"

关于linux - 如何提取多个值并在文件中打印正确的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57267895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com