使用sed或awk按模式将字符串拆分为标记

时间:2015-09-15 15:38:26

标签: bash sed

我的输入是

filename.b.c

我想要的输出是

filename
b
c

我可以通过'。'分开。使用sed或awk的角色?

4 个答案:

答案 0 :(得分:3)

您可以使用string dateFormatted = DateTime.Today.ToString("yyyy.MM.dd");

tr

答案 1 :(得分:3)

您可以使用BASH字符串操作来执行此操作:

s='filename.b.c'
eol=$'\n'

echo "${s//./$eol}"
filename
b
c

read使用IFS

IFS=. read -ra var <<< "$s"
printf "%s\n" "${arr[@]}"
filename
b
c

答案 2 :(得分:3)

问题是关于sed和awk。这是sed版本:

echo filename.b.c | sed 's/\./\n/g'

和awk版本:

echo filename.b.c | awk -F'.' '{for (i=1; i<= NF; i++) print $i}'

答案 3 :(得分:2)

你可以替换。按空格,然后使用()将其设置为数组:

filename=file.a.b.c
arr=(${filename//./ })

然后你可以显示你的数组:

for k in "${arr[@]}";do echo "[$k]";done