文書
TxA1000| Tx5000| TxAc2000
Ms67Ty| AtX0000| Tx5000
希望の出力:
.Tx5000.
..Tx5000
試した解決策:
awk -F '|' '!/Tx5000/{next}{gsub(/[aA0-zZ9]/, ".")}1 file
得られた出力:
.......| ......| ........
......| .......| ......
助けが必要です。
答え1
おそらく:
awk -F '[|] ' -v OFS="" -v ok="Tx5000" '
{for (i=1; i<=NF; i++) if ($i != ok) $i="."; print}
' <<END
TxA1000| Tx5000| TxAc2000
Ms67Ty| AtX0000| Tx5000
END
.Tx5000.
..Tx5000
フィールドの区切り文字は「パイプ+スペース」と思われるため、パラメータは-F
より具体的です。
「ファイルには適用されません」という声明をより具体的に説明する必要があります。
$ cat >|file
TxA1000| Tx5000| TxAc2000
Ms67Ty| AtX0000| Tx5000
$ awk -F '[|] ' -v OFS="" -v ok="Tx5000" '
{for (i=1; i<=NF; i++) if ($i != ok) $i="."; print}
' file
.Tx5000.
..Tx5000
awk '...' < file
のような結果cat file | awk '...'
答え2
Python
#!/usr/bin/python
import re
l=re.compile(r'Tx5000')
k=open('rr.txt','r')
for i in k:
if re.search(l,i):
o=i.strip().split("|")
for w in range(0,len(o),1):
we=[]
if (o[w].strip() == "Tx5000"):
for q in range(0,len(o),1):
if (q == w):
we.append("Tx5000")
else:
we.append(".")
print "".join(we).strip()
出力
.Tx5000.
..Tx5000