文章目录
需求
b.txt # 存放商品组列表中sku
[root@node1 ~]# vim b.txt 
ACCS1793-CARD982-ZT617-C4002-15-Grandma
ACCS1793-CARD982-ZT617-C4002-15-Nanny
ACCS1793-CARD982-ZT617-C4002-15-Nana
ACCS1793-CARD982-ZT617-C4002-15-Nan
ACCS1793-CARD982-ZT617-C4002-15-Nanna
ACCS1793-CARD982-ZT617-C4002-15-Grammy
ACCS1793-CARD982-ZT617-C4002-15-Mimi
ACCS1793-CARD982-ZT617-C4002-15-Granny
ACCS1793-CARD982-ZT617-C4002-15-Grandmother
....
需要对该内容进行重复输出5次
脚本:
[root@node1 ~]# for i in `cat b.txt`;do echo  $i;echo $i ;echo $i;echo $i;echo $i;done
注释: b.txt文件名可以自定义 ,在for循环中 文件名需要与自己定义的一致 其他脚本同理 不做过多赘述
#实现效果:
[root@node1 ~]# for i in `cat b.txt`;do echo  $i;echo $i ;echo $i;echo $i;echo $i;done
ACCS1793-CARD982-ZT617-C4002-15-Grandma
ACCS1793-CARD982-ZT617-C4002-15-Grandma
ACCS1793-CARD982-ZT617-C4002-15-Grandma
ACCS1793-CARD982-ZT617-C4002-15-Grandma
ACCS1793-CARD982-ZT617-C4002-15-Grandma
ACCS1793-CARD982-ZT617-C4002-15-Nanny
ACCS1793-CARD982-ZT617-C4002-15-Nanny
ACCS1793-CARD982-ZT617-C4002-15-Nanny
ACCS1793-CARD982-ZT617-C4002-15-Nanny
ACCS1793-CARD982-ZT617-C4002-15-Nanny
ACCS1793-CARD982-ZT617-C4002-15-Nana
...
附赠商品sku 其一 :
[root@node1 ~]# sed -e  "s/$/ \nrongbudaizi\nguanhua-Orange\nBox-Khaki-9*9*3-001\n/" b.txt
效果展示:
[root@node1 ~]# sed -e  "s/$/ \nrongbudaizi\nguanhua-Orange\nBox-Khaki-9*9*3-001\n/" b.txt 
ACCS1793-CARD982-ZT617-C4002-15-Grandma 
rongbudaizi
guanhua-Orange
Box-Khaki-9*9*3-001
ACCS1793-CARD982-ZT617-C4002-15-Nanny 
rongbudaizi
guanhua-Orange
Box-Khaki-9*9*3-001
....
# 最后一行内容需要单独截取,一条脚本无法实现 ,故 进行换行占位. 后续会通过excel函数合并
#脚本解释:
sed -e  "s/$/                                          # 将b.txt文件中每行末尾替换
\nrongbudaizi\nguanhua-Orange\nBox-Khaki-9*9*3-001\n/" # \n 换行符 其中rongbudaizi之类商品时固定的 每多一件商品后续增加一个换行符 ,如商品后续有变更 只需在相同位置进行替换即可
附赠商品sku 其二 :
[root@node1 ~]# cat b.txt | awk -F "-" '{print$1"-"$3"-"$(NF-1)}' |sed -n "s/$/ \n\n\n\n/p"
# cat b.txt 查看去重商品 列表
# | 管道符号 将前面的输出作为后面的输入
#  awk -F "-" 通过awk 命令截取字符串 以- 作为分隔符
# {print$1"-"$3"-"$(NF-1)} $1 截取第一行内容 "-" 引号之间的-是自己指定的分隔符  $(NF-1) 是最后一个字段的前一个 这里取到的是cm字段
# s/$/ \n\n\n\n/p" 通过sed命令将每行的末尾处 增加4个换行符 
效果展示:
[root@node1 ~]# cat b.txt | awk -F "-" '{print$1"-"$3"-"$(NF-1)}' |sed -n "s/$/ \n\n\n\n/p"
ACCS1793-ZT617-15 
ACCS1793-ZT617-15 
...
excel 拼接
- 将第一步for 循环的结果 粘贴到excel *组合sku字段实现
- 将附赠商品sku 其一的内容粘贴到新的一列 然后将附赠商品sku 其二粘贴到紧邻的一列 此时单元格格式为
| CARD982-Grandma | |
|---|---|
| rongbudaizi | |
| guanhua-Orange | |
| Box-Khaki-993-001 | |
| ACCS1793-ZT617-15 | |
| CARD982-Nanny | |
| rongbudaizi | |
| guanhua-Orange | |
| Box-Khaki-993-001 | |
| ACCS1793-ZT617-15 | |
| CARD982-Nana | |
| rongbudaizi | |
| guanhua-Orange | |
| Box-Khaki-993-001 | |
| ACCS1793-ZT617-15 | 
-  通过拼接函数即可将两列合并为一列 - 拼接函数为 =A1&B1
 CARD982-Grandma CARD982-Grandma rongbudaizi rongbudaizi guanhua-Orange guanhua-Orange Box-Khaki-993-001 Box-Khaki-993-001 ACCS1793-ZT617-15 ACCS1793-ZT617-15 CARD982-Nanny CARD982-Nanny rongbudaizi rongbudaizi guanhua-Orange guanhua-Orange Box-Khaki-993-001 Box-Khaki-993-001 ACCS1793-ZT617-15 ACCS1793-ZT617-15 CARD982-Nana CARD982-Nana rongbudaizi rongbudaizi guanhua-Orange guanhua-Orange Box-Khaki-993-001 Box-Khaki-993-001 ACCS1793-ZT617-15 ACCS1793-ZT617-15 CARD982-Nan CARD982-Nan rongbudaizi rongbudaizi guanhua-Orange guanhua-Orange Box-Khaki-993-001 Box-Khaki-993-001 ACCS1793-ZT617-15 ACCS1793-ZT617-15 
- 拼接函数为 










