我需要添加以下列表:
urack-L- urack-L- urack-L- urack-L- urack-L-
字符串关于Urack-L-
urack-L-100 urack-L-101 urack-L-100 urack-L-101 urack-L-100
型等等除了增量(100,101,102等)之外,我还没有找到一种方法。
lrpiutwd1#
awk:
awk '{printf "%s%d\n", $0, 101 - NR % 2}' file
字符串NR变量保存当前记录编号,默认情况下为当前行号。NR % 2对于偶数或奇数行的计算结果为0或1。
NR
NR % 2
bfrts1fy2#
如果你有GNU sed,你可以使用一个扩展地址:
sed '1~2s/$/100/;2~2s/$/101/' infile
字符串其中地址*first*~*step*匹配具有地址 first 的行,然后每step匹配一行。或者,正如CTAC的评论所指出的那样:
*first*~*step*
first
step
sed 's/$/100/;n;s/$/101/' infile
型这使用n命令打印模式空间(包含奇数行)并将下一行(偶数行)加载到其中。这应该适用于任何符合POSIX的sed。
n
8iwquhpp3#
:%s/$/\=(line(".")%2==0?"101":"100")/ % ................ whole file s ................ substitute $ ................ end of line \=(line(".") ..... gets the number of the current line %2==0? ........... if the rest of division equals zero
字符串引用link。
ccrfmcuu4#
这不适合sed,只需要使用一个shell循环和一个你测试的变量。
sed
i=100 while read line do echo "$line$i" if [[ i == 100 ]] then i=101 else i=100 fi done < inputfile > outputfile
字符串
c0vxltue5#
正则表达式也可以很好地工作:
:%s/\(^.*\)\n\(.*\)/\1100\r\2101/g
5条答案
按热度按时间lrpiutwd1#
awk:
字符串
NR
变量保存当前记录编号,默认情况下为当前行号。NR % 2
对于偶数或奇数行的计算结果为0或1。bfrts1fy2#
如果你有GNU sed,你可以使用一个扩展地址:
字符串
其中地址
*first*~*step*
匹配具有地址first
的行,然后每step
匹配一行。或者,正如CTAC的评论所指出的那样:
型
这使用
n
命令打印模式空间(包含奇数行)并将下一行(偶数行)加载到其中。这应该适用于任何符合POSIX的sed。8iwquhpp3#
字符串
引用link。
ccrfmcuu4#
这不适合
sed
,只需要使用一个shell循环和一个你测试的变量。字符串
c0vxltue5#
正则表达式也可以很好地工作:
字符串