• ベストアンサー

指定した列のみ置換する方法は?

スペースで区切られているログで /をスペースにかえたいのですが 1列目には日付の/があるのでそれはそのままにしておきたくて4列目にある/をスペースにしたいのです! 普段はawkを使ったりしています。 誰か教えてください!

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

gsub(/\//," ",$4); print; かな。

como3
質問者

お礼

やってみました! ちゃんと4列目のみ置換することができました! ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

実際には試してないですが、 awkで $4=gsub(/\//," ",$4); print $0; とかすればいいと思います。

como3
質問者

補足

ありがとうございます。 やってみたのですがスペースに置換されずに 置換された数しかでてきません..

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 指定期間内のログを表示する方法

    現在、Ubuntuを使用しています。 指定期間内のログ(/var/log/syslog)を表示したくてネットで調べた下記コマンドを打ちました。期待通りの結果にはなったのですがなぜそうなるのかがわからないです。 -Fオプションで"-"で文字列を区切った最初の文字($1)を使用して 範囲指定を行っています。この時、$1の中身が純粋な日付のみの文字列(例えば’Apr 23 09:10:44’)であればまだわかるのですが$1の内容は 日付のみの文字列ではありませんでした。なぜ、下記コマンドで範囲指定ができるのでしょうか。 cat syslog | awk -F - '"Apr 23 09:10:44" < $1 && $1 <= "Apr 23 09:12:47"'

  • 文字列置換について

    4901777␣品名A␣規格A␣日付␣␣␣␣␣6280␣␣␣␣7780 4901879␣品名B␣規格B␣日付␣␣␣␣␣6887␣␣␣␣9856 のような文字列があります。 【品名】と【規格】の間の半角空白を置換し 4901777␣品名規格␣日付␣␣␣␣␣6280␣␣␣␣7780 のように置換したいのですが正規表現ではどのように表したらいいでしょうか? ・【品名】と【規格】は全て大文字 ・【品名】と【規格】の箇所は文字列の始まり文字は不確定

  • 文字列の置換

    文字列の置換 たとえば, if(abcd) という文字列があったときに,これを while(abcd){ に置換するにはどうすればいいでしょうか(同じような置換をしたいところが文章中にいくつもあるとします).つまり,文字列の一部をそのままにして置換するということです.いまの場合だと if( → while( はできたとしても, ) → ){ は,文章中に“)”がたくさんある場合は難しいですよね.wordなら,ワイルドカードを使って if(*) とすれば,検索はできるのですが,そのまま置換すると while(*){ となってしまい,*がそのまま残ってしまいます.どうにかできないでしょうか?

  • 【VBA】 文字列の中から指定の文字列を取り出す

    VBAで文字列から指定の文字のn番目からn+1番目までの文字列を取り出すことは可能でしょうか? A1セルに下記の文字列があった場合、「1番目の半角スペースから2番目の半角スペースまでの文字列」を取り出したいのです。 5 53 00 8R この場合、53を取り出したいというわけです。 また、可能でしたら「最後の半角スペースから文字列の最後まで」を取り出す方法も教えていただけるとありがたいです。 この場合は8Rとなります。 InStr関数を使えばできるかもと思ったのですが、できそうなものが思い浮かびません。 どなたか教えていただけませんでしょうか。 よろしくお願いいたしますm(_ _)m

  • {0>と<0}ではさまれた文字列の置換

    Word文書中で、記号{0>と<0}にはさまれた1文字以上の文字列を、これらの記号も含めて半角スーペスに一括置換する方法を教えてください。Wordのバージョンは、2003です。たとえば、 私の名{0>前は山<0}田太郎です。 上記の文なら、置換後は下記のようになって欲しいのです。 私の名 田太郎です。 なお、{0>と<0}の記号自体は置換できないが、はさまれた文字列をスペースに変換することならできる、という回答でも歓迎いたします。つまり、 下記のようになります。 私の名{0> <0}田太郎です。

  • soraris10 ksh で文字列をバイト指定し

    soraris10 ksh で文字列をバイト指定して入れ替える 8バイトの文字列の4バイト目と7バイト目を入れ替えたい場合、簡単にできる方法はありますか? 文字列は半角英字のみです。 echo abcdefgh | awk ’{print substr(ゴニョゴニョ) substr(ゴニョゴニョ)}’ で頑張ってやりましたが、美しくなかったので、sedとかでもっと簡単にできないでしょうか。 宜しくお願いいたします。

  • A列の指定した位置にB,C列の文字を置換させる方法 2

    お世話になります。 昨日以下のような質問をさせていただきました。 *********** Excel2003で、A列の指定した位置にB,C列の文字を置換させる機能はありますか。 例 *にB列の文字を、¥にC列の文字を置換。 A   |B |C 1 (*)\(z)| あ| 2 2 (*)\(z)| 3 | 4     ↓ 1 (あ)2(z)|あ | 2 2 (3)4(z) | 3 | 4 ************ そして回答をいただき、そのうちの一つ「セルD1に数式で表示させるのなら =SUBSTITUTE(SUBSTITUTE(A1,"*",B1,1),"z",C1,1) 」を使わせていただきました。 この関数を用い、60行ほどある置換作業を短時間で終えることが出来喜んでいたのですが、その何時間か後に別ファイルで同じ作業を試みたのです。しかし今度は上手くいきませんでした。 一行目は難なく置換できたのですが、前回上手くいったやり方と同じ作業をしているのに、2行目以降の置換結果が1行目と同じになってしまいます。 こちらの過去ログやGoogleで調べましたが、自分でも理解できる解決策を見つけられず再度質問させていただきました。 よろしくお願いいたします。

  • 複数の文字列を検索

    あるログファイルの文字列を取得して。検索でヒットした文字列行 を返すスクリプトを作成しております。 検索:"OK"    日付 対象行 : OK! Tue Jul 19 文字列"OK"は普通に # grep "OK" ログファイルPath で検索できますが、 文字列と日付を両方引っ掛ける場合は・・・ grep -e "OK" -e env LANG=c date -u +"%a %b $d" ログファイルPath 当然コマンドエラーになります。 dateコマンドから日付を取得して、grepにて引っ掛ける方法を知りたいので すが、お分かりになる方、ご教授お願い致します。

  • 指定した文字列を検索し、その行を並び替えしたいです。

    指定した文字列を検索し、その行を並び替えしたいです。 (例) 魚|さば|5|2010/04/30 肉|うし|3|2010/03/21 魚|いか|7|2010/02/24 魚|たこ|9|2010/02/05 肉|ぶた|2|2010/03/14 上記の表で1列目の行を、3列目の「数量」または4列目の「日付」で並び替えがしたいのです。 「魚日付」「魚数量」「肉日付」「肉数量」のボタンを作成しマクロで処理したいと思います。 よろしくお願いします。

  • awkで最後の列だけ除外する方法

    「awkのみ」で最後の列だけを区切り文字も含めて除外するのに、スマートな方法は無いでしょうか? x1,x2,x3,…,x98,x99,x100 を x1,x2,x3,…,x98,x99 とする方法です。 $ awk {$100="";print $0} だと最後のカンマが残りますし、かといってprint $1, $2,…$98, $99 はダサいのでやめたいのですが・・・