=> '.*',
あるファイルの正規表現に一致する行を別のファイルの行に置き換えようとしています。
2つのサンプルファイル。
ファイル1:
'text_clear' => 'Clear',
'text_search' => 'Search',
'text_enabled' => 'Enabled',
ファイル2:
emptied
lost
turned off
awk/sed/grepを使用してLinuxコマンドを実行して3番目のファイルを生成しようとしています。
ファイル3:
'text_clear' => 'emptied',
'text_search' => 'lost',
'text_enabled' => 'turned off',
Pythonスクリプトを編集したいものを正常に抽出しましたが、可能であれば両方のタスクを実行するためにLinuxコマンドのみを使用したいと思います。
私はこの問題で3時間頭を握りました。どんな助けでも大変感謝します。
ベストアンサー1
code.awk
:
BEGIN{j=1}
NR==FNR{a[NR]=$0;next}
sub(/=> '.*',$/,"=> '"a[j]"',"){++j}
1
awk -f code.awk file2 file1 > file3
一行ずつ説明する:
j=1
初期化- の各行を
file2
配列に配置しますa
。 - の各行に対して、正規表現に一致する文字列を
file1
連結して置き換えます。置換が発生すると増加します。=> '.*',$
=> '
a[j]
',
j
- この行を印刷してください。
$ cat file3
'text_clear' => 'emptied',
'text_search' => 'lost',
'text_enabled' => 'turned off',