こんにちはlinux awk についての質問です
長い文字列が記述してあるファイルから特定の文字以降を消したいです
hoge.txtというファイル上にある"March 10"という文字列以降を削除するとき
bash
1awk '{ sub("March 10.*$",""); print $0; }' hoge.txt
として実行すると問題ないのですが"March 10"の部分をシェル変数に変えて実行する方法がわからなく詰まっています。
bash
1#!/bin/bash 2date="March 10" 3awk -v dt="$date" '{ sub("dt.*$",""); print $0; }' hoge.txt
これだと単純に"dt"という文字列以降が削除されてしまいます
dt.*$の両端のダブルクウォートを取り払って
bash
1awk -v dt="$date" '{ sub(dt.*$,""); print $0; }' hoge.txt
として実行すると
bash
1awk: cmd. line:1: { sub(dt.*$,""); print $0; } 2awk: cmd. line:1: ^ syntax error
でエラーとなってしまいます
環境
Windows10, Ubuntu, Bash
よろしくおねがいします
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/10 06:10