假设我有 6 行文本。
Series
Of
Word
73914
Again
Word
我需要在仅包含数字的行的开头添加一个字符串。说我插入number-
Series
Of
Word
number-73914
Again
Word
目前我运行两个命令来达到预期的结果。我想知道是否有更有效的方法。
注意:有 1000 多行,所以最好适用于所有行(我已经说明过)。
假设我有 6 行文本。
Series
Of
Word
73914
Again
Word
我需要在仅包含数字的行的开头添加一个字符串。说我插入number-
Series
Of
Word
number-73914
Again
Word
目前我运行两个命令来达到预期的结果。我想知道是否有更有效的方法。
注意:有 1000 多行,所以最好适用于所有行(我已经说明过)。
sed
可以这样做:如果我们想考虑空行,我们将使用
+
and-r
选项:验证一切正常后,您可以使用
-i
选项来编辑文件本身,即sed -i ...
. 否则,您始终可以使用sed 's/^[[:digit:]]*$/number-&/' input.txt > output.txt
请注意,这假定文件格式一致,每行没有前导空格或尾随空格。
这是额外的Python:
使用 awk 的一种方法:
目前尚不清楚您是指数字还是仅 0-9。这是一个 Perl 单行代码,它挑选出 123、3.14 和 1e-12 之类的值,同时忽略了无穷大和非数字的各种表示:
我将前缀更改为“N:”只是因为“number--1”看起来有点垃圾。请注意,例如,这会将“1”视为非数字。如果这是不受欢迎的行为,请不要对前导空格进行“m/^\s/”测试。
如果您的意思是“0-9”,那么上面 Sergiy 的 sed 解决方案就可以了。
你可以试试这个