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

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

新規登録して質問してみよう
ただいま回答率
85.48%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

sed

sedとは、POSIX環境のために作られたコマンドラインエディタです。sedは編集スクリプトの指示のもとに複数のファイルを編集し、標準出力にその結果を出力します。

Q&A

解決済

1回答

346閲覧

ファイル行頭の10文字を別のファイルの10文字で置換したい

aufheben

総合スコア24

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

sed

sedとは、POSIX環境のために作られたコマンドラインエディタです。sedは編集スクリプトの指示のもとに複数のファイルを編集し、標準出力にその結果を出力します。

0グッド

0クリップ

投稿2022/01/17 00:18

編集2022/01/17 01:06

例を挙げます。
file1(間違った番号とデータのファイル)
0123456789ichiban
1234567890niban
2345678901sanban
...

file2(番号のファイル)
0000000001
0000000002
0000000003
...

のようなファイルが存在する際に、

0000000001ichiban
0000000002niban
0000000003sanban

のような結果を得たいです。(正しい番号とデータのファイル)

自分で調べてみたのですが、レアケースなのでどうやって調べたらいいかもわかりませんでした。
ご教授いただければ幸いです。

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

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

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

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

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

dodox86

2022/01/17 00:49

> このように先頭の10桁の数字を基にソートする方法も知りたいです。 先頭10文字が0パディングされた数字の文字列ならば、sortコマンドでよいのではないですか。
guest

回答1

0

ベストアンサー

bash

1$ paste --version 2paste (GNU coreutils) 8.32 3$ sed --version 4sed (GNU sed) 4.7 5 6$ paste file2 file1 | sed -E -e 's/^(.{10})\t.{10}/\1/' 70000000001ichiban 80000000002niban 90000000003sanban

数値文字列が先頭にあるので、そのまま(dictionary order) sort file としても同じですが、10 文字で比較してみます。

bash

1$ sort --version 2sort (GNU coreutils) 8.32 3 4$ sort -k1.1,1.10g file3 50000000002niban 60000000003sanban 70000000004yonban 80000000005goban

投稿2022/01/17 00:47

melian

総合スコア19798

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問