更新:
我有一个很大的文件。我需要掩盖特定帖子中的所有字符和特定的记录类型。我到处搜索过,但是找不到这个非常简单的任务的解决方案。这是一个示例
文件名:你好。txt
文件:
0120140206 intut文件
1032682842辛普森先生
20231458 742常绿露台
3034560817绿色
1032682842格里芬先生
20231458 Spooner Street
3034560817红色
3001
我想做的是从10开始掩盖所有线的位置12-16。这样:
0120140206 intut文件
1032682842 xxxxxmpson
20231458 742常绿露台
3034560817绿色
1032682842 xxxxxiffin
20231458 Spooner Street
3034560817红色
3001
尝试以下:
sed 's/^(10[0-9]+[ t]+).*$/1XXXXXXXXXXXXX/g'
示例:
sed 's/^(10[0-9]+[ t]+).*$/1XXXXXXXXXXXXX/g' <<< "0120140206INPUT FILE
1032682842 MR SIMPSON
20231458 742 Evergreen Terrace
9001"
使用awk:
awk '/^10/{q=substr($0, 12); gsub(/./, "*", q); $0=substr($0, 1, 11) q}1' file
0120140206INPUT FILE
1032682842 **********
20231458 742 Evergreen Terrace
9001
更新:如果仅要掩盖第一个10个记录,请使用此尴尬:
awk '!done && /^10/{q=substr($0, 12);gsub(/./, "*", q);$0=substr($0, 1, 11) q;done=1}1' file