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

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

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

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

597閲覧

Linux:全ての値に文字を追加

ttoo

総合スコア126

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

1クリップ

投稿2020/06/18 08:20

編集2020/06/18 08:25

OSはubuntu18です。

$ cat test.txt , 42)3a , fsa)db , gasc , df5ad , adf7e

上記のようにカレントディレクトリにtest.txtファイルが格納されています。
上記のファイルを以下のように全ての末尾に)の文字を結合したいのですが、
どのようにして結合,置換することができますでしょうか?

, 42)3a) , fsa)db) , gasc) , df5ad) , adf7e)

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんな感じ?

sed 's/$/)/' test.txt

投稿2020/06/18 08:22

KojiDoi

総合スコア13692

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

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

ttoo

2020/06/18 08:26

あ、すいません。質問文を少し修正しました。 上記で実行すると、「, 」が「)」に置換されてしまいます
KojiDoi

2020/06/18 08:33

> 上記で実行すると、「, 」が「)」に置換されてしまいます そんなはずはありませんが。
hidezzz

2020/06/18 08:39

自分の環境(Linux Mint 19.3( Ubuntu 18.04LTSとだいたい同じ ) )ですが、 回答のコマンドでちゃんと置換できています。 $ cat test.txt , 42)3a , fsa)db , gasc , df5ad , adf7e $ sed 's/$/)/' test.txt , 42)3a) , fsa)db) , gasc) , df5ad) , adf7e) 例えば1行目で言うと, 「) 42)3a」のように置換されてしまうということですか?
ttoo

2020/06/18 08:39

先頭の1文字目が変換される形です。
ttoo

2020/06/18 08:41

何故だ。。。
hidezzz

2020/06/18 08:42

私が上でやっているような感じで実行結果を貼り付けてみてください。
dodox86

2020/06/18 09:20

たぶん、質問者さんの元のデータで、CR(\r, 0x0d)が入っているのではないでしょうか。 正しいケース $ printf ", 42)3a\n" | sed 's/$/)/' , 42)3a) 正しくない、行頭が置換されているように見えるケース $ printf ", 42)3a\r\n" | sed 's/$/)/' ) 42)3a
ttoo

2020/06/18 09:26

なるほど! ありがとうございます! 解決いたしました!
ttoo

2020/06/18 09:28

あきらめていたので、よかったです(´;ω;`)
hidezzz

2020/06/18 09:38 編集

なるほど。「\r」「\n」が「\r」「)」「\n」と置換されてしまい、見た目には行頭が置換されているように見えるということですね。 $ printf ", 42)3a\r\n" | hexdump -C 00000000 2c 20 34 32 29 33 61 0d 0a |, 42)3a..| 00000009 $ printf ", 42)3a\r\n" | sed 's/$/)/' | hexdump -C 00000000 2c 20 34 32 29 33 61 0d 29 0a |, 42)3a.).| 0000000a
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問