1

辞書を使用してファイル内のAAAAという単語を置き換える必要があります。

dictionary.txt

AXF1
ZCFA
ZCCC

辞書は約1500語です。AAAAをAXF1に置き換える必要があります。次に、次のAAAAを見つけて、ZCFAに置き換える必要があります...これをどのように行うことができますか?私が見つけたものはすべて、次のように置き換える方法です。

AAA1:AXF1
AAA2:ZCFA
etc...
4

3 に答える 3

1
awk 'FNR == NR {list[c++] = $1; next}
{
    while (sub("AAAA", list[n++])) {
        n %= c
    }
    print
}' list.txt inputfile.txt
于 2012-06-24T13:32:48.160 に答える
1

何かのようなもの:

# Read dictionary into memory
dictionary = [line.strip() for line in open('dictionary.txt')]

# Assuming a bit of a wrap around may be required depending on num. of AAAA's
from itertools import cycle
cyclic_dictionary = cycle(dictionary)

# Read main file
other_file = open('filename').read()

# Let's replace all the AAAA's
import re
re.sub('A{4}', lambda L: next(cyclic_dictionary), other_file, flags=re.MULTILINE)
于 2012-06-24T13:12:02.280 に答える
1

これはあなたのために働くかもしれません(GNU sed):

cat <<\! >dictionary.txt
> AXF1
> ZCFA
> ZCCC
> !
cat <<\! >file.txt
> a
> b
> AAAA
> c
> AAAA
> d
> AAAA
> !
sed -e '/AAAA/{R dictionary.txt' -e ';d}' file.txt
a
b
AXF1
c
ZCFA 
d 
ZCCC
于 2012-06-24T18:09:55.320 に答える