#! /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