質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

解決済

4回答

1174閲覧

shellscriptでコンマ区切りで文字結合する方法

Kimsehwa

総合スコア312

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

0クリップ

投稿2018/02/22 04:09

以下のスクリプトを実行して

sh test.sh node1,node2,node3 .tech.io

result:

node1.tech.io,node2.tech.io,node3.tech.io

上記のように出力したいですが、どのように実装れば良いか教えていただけますか

#!/bin/bash -xe for v in `echo $1 | tr "," "\n"`; do echo "${v}.$2" done

現在はこのように書きましたが、改行されてしまうのでカンマー区切って1行にしたいです。

現在のresult:

node1.tech.io node2.tech.io

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

unz.hori

2018/02/22 04:15

変数に追加(append)して最後に出力すればいいのでは?
guest

回答4

0

paste -sに渡します。

Ruby

1for v in `echo $1 | tr "," "\n"`; do 2 echo "${v}.$2" 3done | paste -s -d,

投稿2018/02/22 05:36

otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kimsehwa

2018/02/22 07:53

これシンプルですね、pasteというコマンド勉強になりました。ありがとうございます
otn

2018/02/22 07:57

> paste 本来は、 a b c というファイルと 1 2 3 というファイルから a 1 b 2 c 3 という出力を得るためのコマンドです。
guest

0

ベストアンサー

sh

1 echo node1,node2,node3 .tech.io |awk '{gsub(",", $2",", $1); print $1$2}'

投稿2018/02/22 05:00

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kimsehwa

2018/02/22 07:53

助かりました。ありがとうございます
guest

0

#!/bin/sh echo "${1}${2}" | sed "s/,/${2},/g"

shとbashでは実行結果が異なる場合がありますので、shebangの記述は実際に実行したいシェルと合わせるとよいかと思います。

投稿2018/02/22 05:32

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kimsehwa

2018/02/22 07:54

了解しました。ありがとうございます
guest

0

質問主さんのを改修

shell

1#!/bin/bash 2 3tmp="" 4for v in `echo $1 | tr "," "\n"`; do 5 if [ "$tmp" != "" ]; then 6 tmp="${tmp},${v}.$2" 7 else 8 tmp="${v}.$2" 9 fi 10done

実行は
./test.sh node1,node2,node3 tech.io

実行結果
node1.tech.io,node2.tech.io,node3.tech.io

ちょっといけてないかもw。ただシンプルではある。

投稿2018/02/22 05:23

unz.hori

総合スコア1057

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kimsehwa

2018/02/22 07:54

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問