sed-如何创建名称组合的所有可能变体

sed-如何创建名称组合的所有可能变体,sed,Sed,我似乎找不到一个聪明的方法来创造所有可能的名字组合变体 输入(多个名称放在一起,每个名称以字母表示): ABC(如约翰佩特萨拉) 模式空间:将A替换为1,将B替换为2,将C替换为3(除其他外,这就是你的用武之地) 期望输出 ABC A2C A23 AB3 1BC 12C 1B3不清楚您在这里要做什么,但听起来您需要字符串的所有排列。最好的方法是使用递归。这个问题已经解决了。不清楚您在这里想做什么,但听起来您想要一个字符串的所有排列。最好的方法是使用递归。这个问题已经解决了。sed不是执行此任务的

我似乎找不到一个聪明的方法来创造所有可能的名字组合变体

输入(多个名称放在一起,每个名称以字母表示):
ABC(如约翰佩特萨拉)

模式空间:将A替换为1,将B替换为2,将C替换为3(除其他外,这就是你的用武之地)

期望输出
ABC
A2C
A23
AB3
1BC
12C

1B3

不清楚您在这里要做什么,但听起来您需要字符串的所有排列。最好的方法是使用递归。这个问题已经解决了。

不清楚您在这里想做什么,但听起来您想要一个字符串的所有排列。最好的方法是使用递归。这个问题已经解决了。

sed不是执行此任务的最自然的工具。尝试bash的大括号扩展:

$ printf "%s\n" {A,1}{B,2}{C,3}
ABC
AB3
A2C
A23
1BC
1B3
12C
123

sed并不是执行此任务的最自然的工具。尝试bash的大括号扩展:

$ printf "%s\n" {A,1}{B,2}{C,3}
ABC
AB3
A2C
A23
1BC
1B3
12C
123

您需要使用sed吗?sed或awk更可取,因为我想提高我在这两种语言中的技能。到目前为止,您尝试了什么?到目前为止,我一直在使用:sed-I.bak-nf script list.txt,其中脚本包含许多此类代码:s/name1/name2/p。然后我可以手动添加原始I.bak。如果没有-n,我会有很多副本,我不足以创建一个可以同时执行所有操作的脚本。你需要使用sed吗?sed或awk更可取,因为我想提高我在这两种语言中的技能。到目前为止,你尝试了什么?到目前为止,我一直在使用:sed-I.bak-nf script list.txt,其中脚本包含许多此类代码:s/name1/name2/p。然后我可以手动添加原始I.bak。如果没有-n,我会得到很多副本,我不足以创建一个能同时完成所有任务的脚本。谢谢,但答案是c#,据我所知,我想进一步处理结果,所以我想使用我熟悉的语言,包括正则表达式和管道等。AB3不是美国广播公司。排列是重新排序。(ABC->ACB,CAB,…)谢谢,但据我所知答案是c,我想进一步处理结果,所以我想使用我熟悉的语言,包括正则表达式和管道等。AB3不是ABC的一种排列。排列是重新排序。(ABC->ACB,CAB,…)这是一个很好的解决方案(它还显示了一个我没有包含的期望结果:-)),但它只是一个示例。带有名称的txt文件包括1000个组合和各种团队,如ABC、ADB、GKE,但只有部分名称可以通过数字切换。因此,在我前面的示例中,只有ABC(123)的替代项,这意味着新列表应该包括您找到的+ADB及其更改+GKE(无更改)。我希望这是更清楚的…我不清楚你在问什么,但是,如果一些字母要被替换,而其他字母不被替换,请尝试作为一个例子:
printf“%s\n”ADB{A,1}G{B,2}K{C,3}E
。这是一个很好的解决方案(也显示了我没有包括的期望结果:-),但它只是一个例子。带有名称的txt文件包括1000个组合和各种团队,如ABC、ADB、GKE,但只有部分名称可以通过数字切换。因此,在我前面的示例中,只有ABC(123)的替代项,这意味着新列表应该包括您找到的+ADB及其更改+GKE(无更改)。我希望这是更清楚的…我不清楚你在问什么,但是,如果一些字母被替换,而不是其他字母,试着作为一个例子:
printf“%s\n”ADB{A,1}G{B,2}K{C,3}E