因此,我有一个文件,其中每行的开头都是从1到9999之间的数字,后面跟着用户信息,比如:输入文件。我的问题是如何以格式添加文本字符串的末尾:",C(numberID)“,其中"numberID”是行开头的数字。
我从关于如何写入包含模式的行尾的相关问题。那里试过这个答案
sed '/^0-9,/ s/$/,C/‘employees2.txt
输出显示代码运行良好,因为它只找到以1位数开头的行,并将这些行的末尾添加为",C“字符串。然而,我想要的是在",C“之后添加一个数字,所以我尝试了如下:
sed '/^(0-9,)/ s/$/,C1‘员工2.txt
这会导致错误: sed: 1:"/^(0-9,)/ s/$/,C \1 ":\1未在RE中定义
我期望的输出将是像这样。
发布于 2022-04-19 21:59:05
您可以使用
sed -E 's/^([0-9]),.*/&,C\1/' employees2.txt # POSIX ERE
sed 's/^\([0-9]\),.*/&,C\1/' employees2.txt # POSIX BRE详细信息
-E - POSIX语法^([0-9]),.* -匹配字符串的开头,将一个数字捕获到第1组,然后匹配一个逗号,然后匹配任何文本,直到字符串结束(在POSIX中,您需要转义捕获括号)&,C\1 -用自身+ ,C和组1中的数字替换匹配的行。https://stackoverflow.com/questions/71931745
复制相似问题