Linux Sed字符串操作

Linux Sed字符串操作,linux,sed,Linux,Sed,我需要帮助 从列表中,我希望添加如下示例所示的字符: 开始: =============================================== 最终结果: 9001 9001 9013 9005 9014 9004 9001 9005 9012 9007 9008 9009 9004 9018 9003 9020 9011 9017 9013 此命令不起作用: sed "s/^/9000/g" file.txt 您可以这样做: for num in 1 1 13 5 14 4

我需要帮助 从列表中,我希望添加如下示例所示的字符: 开始:

=============================================== 最终结果:

9001
9001
9013
9005
9014
9004
9001
9005
9012
9007
9008
9009
9004
9018
9003
9020
9011
9017
9013
此命令不起作用:

sed "s/^/9000/g" file.txt

您可以这样做:

 for num in 1 1 13 5 14 4 1 5 12 7 8 9 4 18 3 20 11 17; do echo "$(($num + 9000))"; done
如果列表中也有您不想处理的数字,因为它们已经是90XX格式,您可以在If语句中加入:

for num in 1 1 13 5 14 4 1 5 12 7 8 9 4 18 3 20 11 17 9005; do if [ $(($num)) -le 9000 ]; then echo "$(($num + 9000))"; else echo $num; fi; done
-用于;做完成


Bash算术表达式添加数字-

您可以这样做:

 for num in 1 1 13 5 14 4 1 5 12 7 8 9 4 18 3 20 11 17; do echo "$(($num + 9000))"; done
如果列表中也有您不想处理的数字,因为它们已经是90XX格式,您可以在If语句中加入:

for num in 1 1 13 5 14 4 1 5 12 7 8 9 4 18 3 20 11 17 9005; do if [ $(($num)) -le 9000 ]; then echo "$(($num + 9000))"; else echo $num; fi; done
-用于;做完成


Bash算术表达式来添加数字-

这应该适合您

for num in `cat file.txt`; do if [ $num -le 9000 ]; then echo "$(($num + 9000))"; else echo $num; fi; done

这应该对你有用

for num in `cat file.txt`; do if [ $num -le 9000 ]; then echo "$(($num + 9000))"; else echo $num; fi; done
这可能适用于您(GNU-sed):

在数字的前面加上零。预先加上
9
并删除多余的零。

这可能适合您(GNU-sed):

在数字的前面加上零。在
9
前面加上前缀,并删除多余的零。

您可以尝试(GNU-sed):

您可以尝试(GNU-sed):


当此字符串出现在列表中时会出现问题:1 13 5 14 1 12 7 8 9 4 18 3 20 11 17 9014 9005 9007 9008如何解决此问题?请包含完整的示例并解释您要查找的最终结果。当此字符串出现在列表中时会出现问题:1 13 5 14 1 12 7 8 9 18 3 20 11 17 90149005 9007 9008如何解决此问题?请提供完整的示例,并解释您要寻找的最终结果。
sed
不是执行任务的最佳命令。如答案中所述,使用bash的for循环。
sed
不是执行任务的最佳命令。如答案中所述,使用bash的for循环。