这是我目前的意见:
12 01 2016 "TEST-12345" "Bug" 12 01 2016 "Here are some words with spaces" "No" "No"
目前我正在使用此命令:
cat DATEI | awk '{print $3"."$2"."$1,$4,$5,$8"."$7"."$6}'
但我不会得到最后一列"Here are some words with spaces" "No" "No"
。当然,我可以做$9,$10,$11,$12,$13...$100
,但这不是一个好的解决方案。
我的目标是获得以下输出:
2016.01.12 "TEST-12345" "Bug" 2016.1.12 "Here are some words with spaces" "No" "No"
你有什么想法吗?
答案 0 :(得分:3)
awk -F '"' -v OFS='"' '{split($1, a, " ");$1=a[3]"."a[2]"."a[1]" ";$5=" "$1;print $0}'
将"
用作IFS
和OFS
,并将第一个字段$1
与分隔符分隔为数组a的空格。并使用数组a
中的值重新分配$ 1和重新定位的值。同样对$5
也这样做。在此,我假设$5
与$1
相同,否则使用$5
的其他拆分。
答案 1 :(得分:0)
如果你只想检查类似日期的字符串,而你没有其他日期,你不想在文本中转换,你可以只使用sed:
<DataGrid ItemsSource="{Binding Countries}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Country" Binding="{Binding Name}"/>
</DataGrid.Columns>
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding DataContext.Continent,
RelativeSource={RelativeSource AncestorType=DataGridRow}}"></TextBlock>
</DataTemplate>
</DataGrid.RowHeaderTemplate>
</DataGrid>
使用sed -E -e 's/([[:digit:]]{2}) ([[:digit:]]{2}) ([[:digit:]]{4})/\3.\2.\1/g' DATEI
代替-r
进行GNU sed。