
今までシェルスクリプトではレスポンスが悪い為awkを使い始めました
やりたい物は一応作れたのですが、ファイル出力が美しく無いので
ご教授ください。
shで
A="/export/home/report"
echo hogehoge > $[A]/test.txt
という感じで、awkの中でファイル出力させるときに
パスやファイル名を変数に入れてそこに出力する方法はないでしょうか?
こんな感じでやるとエラーになります。
nawk '{
BEGIN{
A="/export/home/report"
}
END{
echo hogehoge > $[A]"/test.txt"
}
}'
No.2ベストアンサー
- 回答日時:
> print "hogehoge" >> >>> A"/test.txt" <<<
A と "/test.txt"の間にスペースはありますか?
この回答への補足
返答が遅くなり申し訳ありません。自己解決しました。
どうやらawkは出力させるファイルはフルパスで書くか、
変数内にフルパスを入れる(ディレクトリだけでなくファイルも)
必要が有ったようです。
有難うございました。
No.3
- 回答日時:
awkでは変数名を$で修飾しません。
文字列の連結にはスペースを使用します。
awk '{
BEGIN { A = "/export/home/report" }
END{ echo hogehoge > A "/test.txt" }
}'
この処理についてshellをawkに置き換えることで
速くなるとは思えないですが・・・
この回答への補足
遅くなって申し訳ありません。
上記awk分はあくまで例として書きました。(本物は数百行になる為)
実際の物はシェルスクリプトで数百時間かかる処理が数十分ですむようになりました。
有難うございました。
No.1
- 回答日時:
awkでは
・echoではなく、print や printf を使用します。
・文字列は""でくくります。 hogehoge だけでは変数hogehogeになります。
・単純な変数には$は使いません。A "/test.txt" で 文字列が連結されて /export/home/report/test.txt になります。
$はフィールドにアクセスするのに使います。
・基本の構文は
パターン {アクション}
です。awk '{...}'というのは、パターンが省略された使い方です。
BEGIN やENDは「パターン」にあたるので、{}の外に書きます
{
BEGIN{...}
END{...}
}
ではなく
BEGIN{...}
END{...}
です。
シェルスクリプトとはまったく別の言語なので、注意してください
この回答への補足
すいません。コピペした時に編集ミスをして構文がおかしくなってました。
ご教授いただいた方法で行いましたが、私が躓いたのと同じエラーが出ました・・・
(エラー内容)
nawk: syntax error 6 行目
コンテキスト
print "hogehoge" >> >>> A"/test.txt" <<<
nawk: illegal statement 6行目
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- その他(プログラミング・Web制作) テキストデータ変換(プログラミング、linux、python) 8 2023/08/08 16:39
- Visual Basic(VBA) Wordマクロで指定したフォルダ名に保存する方法について 8 2022/12/13 11:35
- Windows 10 renameコマンドでファイル名からアンダースコアを消す方法 5 2023/04/24 13:33
- その他(プログラミング・Web制作) Linuxについて質問です。 引数に指定されたアクセスログのファイルからアクセス数が多い順に上位3つ 1 2023/02/03 03:46
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
bashでブランク(空白)を検索文...
-
HP-UXのメモリ搭載量を確認する...
-
awk のプログラム最初の行
-
お気に入りの処理について。
-
SONYの音楽ソフト「x-アプリ」...
-
既存のHDをマウントする方法
-
Dirコマンドでフォルダ内ファイ...
-
sedコマンドに関して
-
waitやwaitpid、wait3など子プ...
-
windowsタスクでバッチ処理を起...
-
コマンドの実行結果が最初の1...
-
sda1下にディレクトリを作るや...
-
OSが立ち上がりません
-
Linuxのメモリの関して
-
98で2つのファイル
-
shutdownコマンドをキャンセル...
-
LinuxマシンからWin2000に...
-
PC起動時にダイヤルアップ接...
-
Windows Update が実行出来ませ...
-
bash 条件式について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Linux環境 grepで改行コード(CR...
-
grepで日付指定してlogを取り出...
-
grepで全角文字の行を抽出
-
grepでの日本語検索
-
grepで検索文字列が完全一致し...
-
grepでの抽出箇所のみ置換して...
-
sedコマンドで範囲指定しての部...
-
特定文字列を除外する方法(gre...
-
awkを用いて、特定の文字を含む...
-
LINUXで半角の英数字以外の文字...
-
sed で \\ を含む文字列に置換
-
ファイルをある文字列で分割し...
-
grepで変数が使えない
-
コマンドの出力結果をn行おきに...
-
シェルスクリプトの記述について
-
sedによる置換 置換ができない。
-
awkのファイル出力について
-
awkコマンドについて
-
行頭と行末に文字追加
-
表示桁数をそろえた文字列を変...
おすすめ情報