以数据格式拆分awked字符串
我需要解析被唤醒的字符串:以数据格式拆分awked字符串,awk,Awk,我需要解析被唤醒的字符串: dd.mm.yyyy %H:%M:%S into yyyy-mm-dd %H:%M:%S 例如: 10.04.2017 10:15:05 into 2017-04.10 10:15:05 我需要awk,因为文件很大,只有一列是带“|”分隔符的数据。第3栏 尝试拆分,但我被卡住了: awk -F"|" '{split($3,data," "}' | awk '(split(data[3],data2,"."} 无法从数据中获取数据以按必要的顺序打印变量。如果您在a
dd.mm.yyyy %H:%M:%S into yyyy-mm-dd %H:%M:%S
例如:
10.04.2017 10:15:05 into 2017-04.10 10:15:05
我需要awk,因为文件很大,只有一列是带“|”分隔符的数据。第3栏
尝试拆分,但我被卡住了:
awk -F"|" '{split($3,data," "}' | awk '(split(data[3],data2,"."}
无法从数据中获取数据以按必要的顺序打印变量。如果您在awk中有一个变量
字符串
,其内容为'10.04.2017 10:14:05',您可以使用字段分隔符将其拆分并重新生成:
split(string,a,'[. ]')
string_new = a[3]"-"a[2]"-"a[1]" "a[4]
简单的
awk
echo "10.04.2017 10:15:05" | awk -F"[. ]" '{print $3"-"$2"."$1,$4}
2017-04.10 10:15:05
将空格和点设置为字段分隔符并打印出来。如果是中间的事情,你可能需要找到和调整更多。如果你的日期在第三个字段 也许您只需要将第三个字段中的
替换为-
。大概是这样的:
awk -F "|" '{gsub("\.","-",$3)}1'
请提供一些示例输入和预期输出。以下命令根据您的要求更改第三个字段(
$3
)
awk -F"|" -v OFS="|" '{
split($3, o, "[. ]" );
$3 = o[3] "-" o[2] "-" o[1] " " o[4];
print
}'
对于输入
dfdsfsdg | kljgslfdjgl | 10.04.2017 10:15:05
输出为dfdsfsdg | kljgslfdjgl | 2017-04-10:15:05
dd.mm.yyyyyy%H:%S到yyyyyyy-mm-dd%H:%S
这是整个输入字符串,或者说输入只是dd.mm.yyyyyyyyyyy%H:%S
部分?你能重新格式化这篇文章吗?你们能把输入和输出分开,并把它放在不同的代码块中吗只有一列是带有“|”分隔符的数据
-在您提供的示例输入中没有“”
字符。类似于“awk-F'|”{n=split($3,a,”)”;for(i=1;InNot clear request)。请提供一些输入行和预期输出。只有一列是带有“|”的数据分隔符
mean?不要只显示要转换的字符串,在示例输入的几行(3行或4行)内的其他(3行或4行)字段中显示它,并显示相应的预期输出。