假设我有文本文件,例如
A1
A2
A3
A4
A7
A27
A31
A56
A100
A8
A11
我想要这样的输出,其中 A1 到 A30 应该用 A1 代替,A31 到 A100 应该用 A2 代替,使用 sed、awk 或 for 循环
A1
A1
A1
A1
A1
A1
A2
A2
A2
A1
A1
我是新手请帮忙,谢谢和问候
我试过这个
sed -i "s/(A1:A10)/A1/g" file.txt
我也尝试过循环 请改进我的编码
for i in file.txt;
do cat "$i";
if ((A*>A10));
then
sed -e 's/A*/A1;
else sed -e 's/A*/A2;
fi
done
你好umar你可以尝试使用这个单行命令(它适用于 Bash 和 Zsh )让我解释一下:我遍历文件输出但我只修剪数字(因为所有条目都以'A'开头)然后,我用 if-elif 块过滤每一行,如果它在 1 到 30 之间,则回显“A1”,但如果它在 31 到 100 之间,则回显“A2”,正如您在问题中所要求的,但所有这些都在一行中。
请检查并确认它是否有效,我也是新回答。问候。