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

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

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

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

sh

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

AWK

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

Q&A

4回答

5498閲覧

awkをしたあとにファイルを上書きしたい

kozica

総合スコア58

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

sh

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

AWK

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

0グッド

0クリップ

投稿2019/01/04 09:56

awkしたあとにそのファイルを上書きしたいのですが、どうすればよいでしょうか?
下記試したこと記載しています。
###試したこと

sh

1#ソース 2cat sample.txt | awk '{values[$0]=0;} END{for(key in values) print key;}' > sample.txt

調べると
「awk -i inplace ''」
で上書きできるようですが、awkのバージョンの問題なのか
「awk: not an option: -i」
となります。

バージョンを調べようと下記コマンド試したら、
mawkで1.3.3となりました。
これを4.1.0以上にしたらよいのでしょうか?

$gawk -W version
$mawk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
compiled limits:
max NF 32767
sprintf buffer 2040

環境
ubuntu18.04

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

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

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

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

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

guest

回答4

0

-iのようなオプションを持つコマンドは少数なので、普通は、

sh

1awk '~~' sample.txt >out 2mv out sample.txt

のようにします。

投稿2019/01/04 12:44

編集2019/04/15 12:32
otn

総合スコア84529

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

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

0

複雑度にもよりますが、自分だったら…

vi で sample.txt を開いて、全行を対象に awk スクリプトを実行し
うまくいったようなら保存&終了
うまくいってないなら破棄&終了

みたいなことはよくやってました。

投稿2019/04/15 13:43

takasima20

総合スコア7458

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

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

0

teeコマンドをつかってみてはどうでしょうか?

bash

1$ cat sample.txt | awk '{values[$0]=0;} END{for(key in values) print key;}' | tee sample.txt

ただし、上記コマンドはawkの出力がバッファされることを利用している可能性が高いので、正しく理解した状態で実行したほうが良いかもしれません。

投稿2019/04/15 11:17

amanoese

総合スコア132

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

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

0

man page mawkで検索しましたところ、mawk は -iオプションをサポートしていないようです。

https://linux.die.net/man/1/mawk

awk -iを使用する場合、gawkを使用すればよいのではないでしょうか?

投稿2019/01/04 11:32

fu7mu4

総合スコア1088

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問