![我有一个包含随机数的文件。我需要将所有数字从 2000-4000 转换为 xyzw](https://linux22.com/image/100260/%E6%88%91%E6%9C%89%E4%B8%80%E4%B8%AA%E5%8C%85%E5%90%AB%E9%9A%8F%E6%9C%BA%E6%95%B0%E7%9A%84%E6%96%87%E4%BB%B6%E3%80%82%E6%88%91%E9%9C%80%E8%A6%81%E5%B0%86%E6%89%80%E6%9C%89%E6%95%B0%E5%AD%97%E4%BB%8E%202000-4000%20%E8%BD%AC%E6%8D%A2%E4%B8%BA%20xyzw%20.png)
输入示例:
2234 1233 5678 8876 9009 3444
2222 3454 5667 7878 4554 3222
输出:
xyzw 1233 5678 8876 9009 xyzw
xyzw xyzw 5667 7878 4554 xyzw
我正在使用这个查询:perl -pe 's/^[2-4]+/abcd/g'
但没有给我所需的输出。
答案1
由于它只是运行正则表达式,因此您可以使用以下命令直接更快地执行sed
:
sed 's/\b\([2-3][0-9][0-9][0-9]\|4000\)\b/xyzw/g' input
请注意,考虑到@roaima 的评论,我更新了它。