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

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

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

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

Linux

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

AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

Q&A

2回答

1724閲覧

linux aws,sedコマンド質問

Kimsehwa

総合スコア312

sed

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

Linux

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

AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

0グッド

1クリップ

投稿2015/09/11 06:36

/mnt/xx/xx/attachments/projectname/files/abc.xls: Doc.Exploit.CVE_2015_2341 FOUND

このような行から

projectname abc.xls

だけを取得するlinuxコマンドを教えていただけますでしょうか。

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

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

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

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

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

coco_bauer

2015/09/11 07:33

projectnameを探すための条件は、どうなっていますか? 「"attachments/" と "/files" の間にある文字列」 とか、ファイルのディレクトリの下から2番目とか、探すための何らかのルールが必要です。
Kimsehwa

2015/09/11 07:48

ありがとうございます。「"attachments/" と "/files" の間にある文字列」間でprojectnameを特定したいです。
guest

回答2

0

「"attachments/" と "/files" の間にある文字列」間でprojectnameを特定したいです。

との事でしたので、入力のログをinput.logとすると、たとえば

bash

1cat input.log | 2sed 's,.*/attachments/¥([^/]*¥)/files/¥([^/]*¥):.*,¥1 ¥2,'

bash

1cat input.log | 2awk -F/ '{t=$0 3 sub(".*/attachments/", "", t) 4 sub(":.*", "", t) 5 sub("/files/", " ", t) 6 print t}'

投稿2015/09/11 10:05

編集2015/09/11 10:07
pi-chan

総合スコア5936

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

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

0

abc.xls はファイル名なのだとして、projectname はどういう規則なのでしょうか?
2つ上のディレクトリということでしょうか?

であれば次のような感じです。

bash

1cat input | cut -d: -f1 | awk -F/ '{print $(NF-2) " " $(NF)}'

「"attachments/" と "/files" の間にある文字列」間でprojectnameを特定したいです。

sed で書きにくい場合は perl 使っちゃっても良いと思うの

bash

1cat input | perl -nle 'print "$1 $2" if ~ m|/attachments/([^/]+)/files/([^/]+):|'

投稿2015/09/11 09:03

編集2015/09/11 12:00
ngyuki

総合スコア4514

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問