我有许多文本文件前面带有这样的数字:
12 some text here
some text here
some text here
或者有时像这样:
123 text here
some more not-so-interesting text here
some text here
even more not-so-interesting text here
我需要它们看起来像这样:
12
some text here
some text here
some text here
使用 sed 或 awk 或某些命令行工具可以吗?我只需要将数字放在新行上,与该行上的其他文本隔离。
答案1
只需记住该数字并将其后面的空格替换为换行符即可:
sed 's/^\([0-9][0-9]*\) /\1\n/'
如果您的 sed 支持它,您可以使用扩展的正则表达式来提高可读性:
sed -E 's/^([0-9]+) /\1\n/'
[0-9]
匹配一个数字*
意思是“零次或多次”+
意思是“至少一次”\(...\)
或(...)
创建一个“捕获组”,第一个捕获组可以引用为\1
等。\n
代表换行符