ファイルAがあるとしましょう。
fileA
fileB
現在、次のようなファイルがあるとしましょう。
fileA_someprefix_20160101.txt
今私は欲しいA の接頭辞が付いたすべての行に一致します。filename
、従って私は考える:
FILE_NAME="fileA_someprefix_20160101.txt"
awk '"$FILE_NAME" ~ /^$1/' A.txt
私は成功せずにドル記号を脱出するためにさまざまな方法を試しました。
すべての例では、フィールドは正規表現ではなく式(左)の一部です。
どうやっreverse
て始めますか?
答え1
GNU awkを使用すると、文字列式が~
。
awk -v FILE_NAME="$FILE_NAME" 'FILE_NAME ~ ("^" $1)' A.txt
答え2
awk
正規表現では変数を参照できません/regex/
。
POSIXly プレフィックスを確認するには、index()
次の関数を使用します。
FN="fileA_someprefix_20160101.txt" awk 'index(ENVIRON["FN"], $1) == 1' <file
~からPOSIX仕様awk
:
索引(S、ティー)
1から始まる番号付き文字列の位置を文字単位で返します。Sどこに文字列ティー最初に発生するか、まったく発生しない場合は0です。