我有一个如下的输入文件,
group_velocity: [ 0.0000000 0.0000000 0.0000000 ]
group_velocity: [ 6.8213667 5.2673206 0.0002496 ]
group_velocity: [ 19.0751734 29.0686833 0.0006979 ]
现在,我想使用awk / sed命令,这样输出文件将如下所示:
0.0000000 0.0000000 0.0000000
6.8213667 5.2673206 0.0002496
19.0751734 29.0686833 0.0006979
任何帮助将不胜感激。
答案 0 :(得分:1)
这有效:
echo "group_velocity: [ 0.0000000 0.0000000 0.0000000 ]
group_velocity: [ 6.8213667 5.2673206 0.0002496 ]
group_velocity: [ 19.0751734 29.0686833 0.0006979 ]" | awk '{print $3, $4, $5}'
致谢。
答案 1 :(得分:1)
如果数据始终都是相同格式,则应该这样做:
awk '{print $3,$4,$5}' file
0.0000000 0.0000000 0.0000000
6.8213667 5.2673206 0.0002496
19.0751734 29.0686833 0.0006979
如果格式化很重要:
awk '{print $3,$4,$5}' OFS="\t" file
0.0000000 0.0000000 0.0000000
6.8213667 5.2673206 0.0002496
19.0751734 29.0686833 0.0006979
答案 2 :(得分:1)
$ tr -dc '0-9. \n' < file
0.0000000 0.0000000 0.0000000
6.8213667 5.2673206 0.0002496
19.0751734 29.0686833 0.0006979
答案 3 :(得分:0)
sed 's/^.*\[\|\].*//g' input_file
这是删除从开始到[
和]
到结束的所有内容。
或使用向后引用:
sed 's/.*\[\([^]]*\)\].*/\1/g' input_file
这将提取两个[
和]
之间的文本。