2017-04-01 84 views
-1

我想用sed编辑一个文件,我的目标是删除数字之间的空格,但在第一个单词之后保留它(例如Water 1983 02 13, - 1984 02 1 ,变成水,19840213,1984021) 这是我目前的命令:使用SED删除第一行后的空格

awk '{print $10,$4,$2,$3,$5,$8,$6,$7}' czodiac | sed 's/Feb/02/g;s/Jan/02/g;s/–//g;s/ //g;s/,$//g' 

输出至今:Water19830213,1984021

+2

你似乎是打印一堆空间在你的第一个命令,然后请求第二个命令再次将其删除。只是不打印他们可能会更有意义。如果你张贴一些样本输入('czodiac'的内容)和预期输出,我们可以帮助你。 –

+0

谢谢埃德,答案已经提供。 –

+2

**提供了一个**答案。考虑到“我正在削减自己,我该如何阻止流血?”这个问题,答案将是“在其上放置一个绷带”,但是可能完全是一个更好的方法...... –

回答

1

考虑:

$ echo "$s" 
Water 1983 02 13, - 1984 02 1 

你可以d ○:

$ echo "$s" | awk '{sub(/ /,","); sub(/, - /,","); gsub(/[ ]+/,"")}1' 
Water,19830213,1984021 
+0

谢谢,这很有效好。我没有意识到awk中的子:D –

0

sed 'h; s/[^ ]*//; s/ //g; x; s/ .*/ /; G'