在Python中从取消限制的字符串创建双引号条目列表

在Python中从取消限制的字符串创建双引号条目列表,python,shell,powershell,awk,Python,Shell,Powershell,Awk,我有一句话 日期| v3 | 0.00 | 0.00 | 0.00 | 0 | 7324.00 | 0.00 | 12278 12276 |周二一月29日09:36:47 我想迭代这一行并形成一个类似这样的输出 [日期,v3,0.00,0.00,0.00,0,0,7324.00,0.00,12278 12276,星期二1月29日09:36:47] 这是我想用shell脚本实现的,我怎样才能实现呢 第一种解决方案:请尝试以下方法 awk -v s1="\",\"" -v s2="\"" '{gsu

我有一句话

日期| v3 | 0.00 | 0.00 | 0.00 | 0 | 7324.00 | 0.00 | 12278 12276 |周二一月29日09:36:47

我想迭代这一行并形成一个类似这样的输出

[日期,v3,0.00,0.00,0.00,0,0,7324.00,0.00,12278 12276,星期二1月29日09:36:47]

这是我想用shell脚本实现的,我怎样才能实现呢

第一种解决方案:请尝试以下方法

awk -v s1="\",\"" -v s2="\"" '{gsub(/\|/,s1);$0="[" s2 $0 s2 "]"} 1' Input_file
awk -v s1="\",\"" -v s2="\"" -v s3="\" ,\"" '{gsub(/ \||\| /,s3);gsub(/\|/,s1);$0="[" s2 $0 s2 "]"} 1' Input_file
输出如下

["date ","v3"," 0.00"," 0.00"," 0.00"," 0"," 0"," 7324.00"," 0.00"," 12278 12276","Tue Jan 29 09:36:47"]
["date" ,"v3" ,"0.00" ,"0.00" ,"0.00" ,"0" ,"0" ,"7324.00" ,"0.00" ,"12278 12276","Tue Jan 29 09:36:47"]
第二种解决方案:或者要处理不均匀的空间,请尝试以下方法

awk -v s1="\",\"" -v s2="\"" '{gsub(/\|/,s1);$0="[" s2 $0 s2 "]"} 1' Input_file
awk -v s1="\",\"" -v s2="\"" -v s3="\" ,\"" '{gsub(/ \||\| /,s3);gsub(/\|/,s1);$0="[" s2 $0 s2 "]"} 1' Input_file
ORa上述非一种线性形式:

awk -v s1="\",\"" -v s2="\"" -v s3="\" ,\"" '
{
  gsub(/ \||\| /,s3)
  gsub(/\|/,s1)
  $0="[" s2 $0 s2 "]"
}
1
'  Input_file
输出如下

["date ","v3"," 0.00"," 0.00"," 0.00"," 0"," 0"," 7324.00"," 0.00"," 12278 12276","Tue Jan 29 09:36:47"]
["date" ,"v3" ,"0.00" ,"0.00" ,"0.00" ,"0" ,"0" ,"7324.00" ,"0.00" ,"12278 12276","Tue Jan 29 09:36:47"]
第一种解决方案:请尝试以下方法

awk -v s1="\",\"" -v s2="\"" '{gsub(/\|/,s1);$0="[" s2 $0 s2 "]"} 1' Input_file
awk -v s1="\",\"" -v s2="\"" -v s3="\" ,\"" '{gsub(/ \||\| /,s3);gsub(/\|/,s1);$0="[" s2 $0 s2 "]"} 1' Input_file
输出如下

["date ","v3"," 0.00"," 0.00"," 0.00"," 0"," 0"," 7324.00"," 0.00"," 12278 12276","Tue Jan 29 09:36:47"]
["date" ,"v3" ,"0.00" ,"0.00" ,"0.00" ,"0" ,"0" ,"7324.00" ,"0.00" ,"12278 12276","Tue Jan 29 09:36:47"]
第二种解决方案:或者要处理不均匀的空间,请尝试以下方法

awk -v s1="\",\"" -v s2="\"" '{gsub(/\|/,s1);$0="[" s2 $0 s2 "]"} 1' Input_file
awk -v s1="\",\"" -v s2="\"" -v s3="\" ,\"" '{gsub(/ \||\| /,s3);gsub(/\|/,s1);$0="[" s2 $0 s2 "]"} 1' Input_file
ORa上述非一种线性形式:

awk -v s1="\",\"" -v s2="\"" -v s3="\" ,\"" '
{
  gsub(/ \||\| /,s3)
  gsub(/\|/,s1)
  $0="[" s2 $0 s2 "]"
}
1
'  Input_file
输出如下

["date ","v3"," 0.00"," 0.00"," 0.00"," 0"," 0"," 7324.00"," 0.00"," 12278 12276","Tue Jan 29 09:36:47"]
["date" ,"v3" ,"0.00" ,"0.00" ,"0.00" ,"0" ,"0" ,"7324.00" ,"0.00" ,"12278 12276","Tue Jan 29 09:36:47"]

您似乎将信息保存在一个列表结构[…]中,它与Python中的一个构造非常相似,而这个构造在具有数组或Awk的bash中并不容易实现

您可以简单地执行以下操作

import json
str='date |v3| 0.00| 0.00| 0.00| 0| 0| 7324.00| 0.00| 12278 12276|Tue Jan 29 09:36:47'
split_str = str.split("|")
wo_spaces = [ str.strip() for str in split_str ]
print( json.dumps( wo_spaces ) )
["date", "v3", "0.00", "0.00", "0.00", "0", "0", "7324.00", "0.00", "12278 12276", "Tue Jan 29 09:36:47"]

您似乎将信息保存在一个列表结构[…]中,它与Python中的一个构造非常相似,而这个构造在具有数组或Awk的bash中并不容易实现

您可以简单地执行以下操作

import json
str='date |v3| 0.00| 0.00| 0.00| 0| 0| 7324.00| 0.00| 12278 12276|Tue Jan 29 09:36:47'
split_str = str.split("|")
wo_spaces = [ str.strip() for str in split_str ]
print( json.dumps( wo_spaces ) )
["date", "v3", "0.00", "0.00", "0.00", "0", "0", "7324.00", "0.00", "12278 12276", "Tue Jan 29 09:36:47"]
一个简单的方法:

输出:

["date","v3","0.00","0.00","0.00","0","0","7324.00","0.00","12278 12276","Tue Jan 29 09:36:47"]
一个简单的方法:

输出:

["date","v3","0.00","0.00","0.00","0","0","7324.00","0.00","12278 12276","Tue Jan 29 09:36:47"]
使用Perl

$ export a='date |v3| 0.00| 0.00| 0.00| 0| 0| 7324.00| 0.00| 12278 12276|Tue Jan 29 09:36:47'
$ echo $a | perl -F"\s*\|\s*" -lane ' $_="\x22".$_."\x22" for(@F); print "[",join(",",@F),"]" '
["date","v3","0.00","0.00","0.00","0","0","7324.00","0.00","12278 12276","Tue Jan 29 09:36:47"]
$
使用Perl

$ export a='date |v3| 0.00| 0.00| 0.00| 0| 0| 7324.00| 0.00| 12278 12276|Tue Jan 29 09:36:47'
$ echo $a | perl -F"\s*\|\s*" -lane ' $_="\x22".$_."\x22" for(@F); print "[",join(",",@F),"]" '
["date","v3","0.00","0.00","0.00","0","0","7324.00","0.00","12278 12276","Tue Jan 29 09:36:47"]
$

你想用哪一个?用于保存列表的shell脚本或Python结构?您希望使用哪一种?保存列表的shell脚本或Python结构?