shell 字符串转换成数组,shell行转列,列转行

#! /bin/bash

str="gnome-ctor nar pcmanfm flashot gi "

arr=(${str//A/ })   A 为需要制定的间隔符此处是空格 A/  A/后有一空格不可省略

for s in ${arr[@]}
do
echo $s
done
 

当初转数组是为了方便提取按照逗号分割的每一个,然后在打印出来,变成一列

后来发现直接用awk就可以搞定,不用再转数组了,那么麻烦

cat xxx | awk -F ',' '{for (i=1;i<=NF;i++) print $i}'

然后就可以随心所欲的用vim对其进行列操作了ctrl v

如果要是在转换为指定分割一行 用vim的替换 :%s/\n//g 即将换行替换成了空达到间接删除的目的

案例 

 

假设分隔符为逗号,皆可在vim里面处理

行 -> 列  :%s/,/\r/g

列 -> 行 :%s/\n/,/g

 

行转列  假设test文本内容为 sd,sw,er,sfd,sfasg,sfgs,afas,afas

cat test | awk -F ',' '{for(i=1;i<=NF;i++) print $i}' 直接一个个的打印出来了

或者 vim :%s/,/\r/g 

列转行 直接vim编辑 替换 :%s/\n/ /g 将回车替换成空变相删除

 

假设分隔符为逗号,皆可在vim里面处理

行 -> 列  :%s/,/\r/g

列 -> 行 :%s/\n/,/g

 

如果要在每行后添加逗号可以

sed -i  's/$/&,/g' test2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值