Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 从持续时间格式时间中删除连字符_Bash_Sed - Fatal编程技术网

Bash 从持续时间格式时间中删除连字符

Bash 从持续时间格式时间中删除连字符,bash,sed,Bash,Sed,我需要从duration format time中删除连字符,但sed命令并没有按我的预期成功 原始输出: 00:0-26:0-8 00:0-28:0-30 00:0-28:0-4 00:0-28:0-28 00:0-27:0-54 00:0-27:0-19 00:26:08 00:28:30 00:28:04 00:28:28 00:27:54 00:27:19 预期输出: 00:0-26:0-8 00:0-28:0-30 00:0-28:0-4 00:0-28:0-28 00:0-27:

我需要从duration format time中删除连字符,但sed命令并没有按我的预期成功

原始输出:

00:0-26:0-8
00:0-28:0-30
00:0-28:0-4
00:0-28:0-28
00:0-27:0-54
00:0-27:0-19
00:26:08
00:28:30
00:28:04
00:28:28
00:27:54
00:27:19
预期输出:

00:0-26:0-8
00:0-28:0-30
00:0-28:0-4
00:0-28:0-28
00:0-27:0-54
00:0-27:0-19
00:26:08
00:28:30
00:28:04
00:28:28
00:27:54
00:27:19
我试着指挥,但我被绊倒了

sed 's/;/ /g' temp_file.txt  | awk '{print $8}' | grep - | sed 's/-//g;s/00:0/0:/g' 

仅在显示的示例中,以下
awk
可能会对您有所帮助

awk -F":" '{for(i=1;i<=NF;i++){sub(/0-/,"",$i);$i=length($i)==1?0$i:$i}} 1' OFS=":"  Input_file

awk-F:“{for(i=1;i仅针对您显示的样本,以下
awk
可能会对您有所帮助

awk -F":" '{for(i=1;i<=NF;i++){sub(/0-/,"",$i);$i=length($i)==1?0$i:$i}} 1' OFS=":"  Input_file

awk-F:“{for(i=1;i对于给定的示例,此一行程序执行以下任务:

awk -F':0-' '{printf "%02d:%02d:%02d\n",$1,$2,$3}' file

对于给定的示例,此一行程序执行以下任务:

awk -F':0-' '{printf "%02d:%02d:%02d\n",$1,$2,$3}' file

使用
sed

sed 's/\<[0-9]\>/0&/g;s/:00-/:/g' file
sed's/\/0&/g;s/:00-/:/g'文件
第一个命令
s/\/0&/g
将零添加到一位数


第二个命令
s/:00-/:/g
删除数字前面的
0-

使用
sed

sed 's/\<[0-9]\>/0&/g;s/:00-/:/g' file
sed's/\/0&/g;s/:00-/:/g'文件
第一个命令
s/\/0&/g
将零添加到一位数


第二个命令
s/:00-/:/g
正在删除数字前面的
0-

如果下面的输出有两列“持续时间”?当我尝试使用上面的一个regexp时,会将我添加为“0”对于第一列duration time/timestamp,我不希望这样,只需修改$7=duration\u time列,该列由分隔

01;12May2018 8:20:36;192.168.1.111;78787;192.168.1.111;78787;80:25:0-49;2018-05-12_111111;RO
02;14May2018 2:43:16;192.168.1.132;78787;192.168.1.111;78787;36:10:0-10;2018-05-12_111111;RO
03;15May2018 7:40:01;192.168.131.1;78787;192.168.1.111;78787;18:39:0-44;2018-05-12_111111;RO
04;15May2018 12:37:46;192.168.1.201;78787;192.168.1.111;78787;12:51:0-14;2018-05-12_111111;RO
以下是输出:

root@root> sed 's/\<[0-9]\>/0&/g;s/:00-/:/g' temp_file
01;12May2018 08:20:36;192.168.01.111;78787;192.168.01.111;78787;80:25:49;2018-05-12_111111;RO
02;14May2018 02:43:16;192.168.01.132;78787;192.168.01.111;78787;36:10:10;2018-05-12_111111;RO
03;15May2018  07:40:01;192.168.131.01;78787;192.168.01.111;78787;18:39:44;2018-05-12_111111;RO
04;15May2018 12:37:46;192.168.01.201;78787;192.168.01.111;78787;12:51:14;2018-05-12_111111;RO
root@root>sed's/\/0&/g;s/:00-/:/g'temp\u文件
2018年5月12日08:20:36;192.168.01.111;78787;192.168.01.111;78787;80:25:49;2018-05-12_111111;RO
2018年5月14日02:43:16;192.168.01.132;78787;192.168.01.111;78787;36:10:10;2018-05-12_111111;RO
2018年5月15日07:40:01;192.168.131.01;78787;192.168.01.111;78787;18:39:44;2018-05-12_111111;RO
2018年5月15日12:37:46;192.168.01.201;78787;192.168.01.111;78787;12:51:14;2018-05-12_111111;RO

如果我有两列“duration time”(持续时间)的以下输出?当我尝试使用上面的一个regexp时,在第一列duration time/timestamp(持续时间/时间戳)中添加我“0”,我不希望这样,只需修改由分隔的$7=duration_time(持续时间)

01;12May2018 8:20:36;192.168.1.111;78787;192.168.1.111;78787;80:25:0-49;2018-05-12_111111;RO
02;14May2018 2:43:16;192.168.1.132;78787;192.168.1.111;78787;36:10:0-10;2018-05-12_111111;RO
03;15May2018 7:40:01;192.168.131.1;78787;192.168.1.111;78787;18:39:0-44;2018-05-12_111111;RO
04;15May2018 12:37:46;192.168.1.201;78787;192.168.1.111;78787;12:51:0-14;2018-05-12_111111;RO
以下是输出:

root@root> sed 's/\<[0-9]\>/0&/g;s/:00-/:/g' temp_file
01;12May2018 08:20:36;192.168.01.111;78787;192.168.01.111;78787;80:25:49;2018-05-12_111111;RO
02;14May2018 02:43:16;192.168.01.132;78787;192.168.01.111;78787;36:10:10;2018-05-12_111111;RO
03;15May2018  07:40:01;192.168.131.01;78787;192.168.01.111;78787;18:39:44;2018-05-12_111111;RO
04;15May2018 12:37:46;192.168.01.201;78787;192.168.01.111;78787;12:51:14;2018-05-12_111111;RO
root@root>sed's/\/0&/g;s/:00-/:/g'temp\u文件
2018年5月12日08:20:36;192.168.01.111;78787;192.168.01.111;78787;80:25:49;2018-05-12_111111;RO
2018年5月14日02:43:16;192.168.01.132;78787;192.168.01.111;78787;36:10:10;2018-05-12_111111;RO
2018年5月15日07:40:01;192.168.131.01;78787;192.168.01.111;78787;18:39:44;2018-05-12_111111;RO
2018年5月15日12:37:46;192.168.01.201;78787;192.168.01.111;78787;12:51:14;2018-05-12_111111;RO

如果您发布初始
temp_file.txt
片段会更好。我认为您当前的管道可以显著优化如果您发布初始
temp_file.txt
片段会更好。我认为您当前的管道可以显著优化optimized@Slashlinux,很高兴它帮助了你,请看l还有ink如果有人在SO cheers上帮助你该怎么办。@Slashlinux,很高兴它帮助了你,也请查看链接如果有人在SO cheers上帮助你该怎么办。