file.dat
No Name Title Publisher Edition
1001 Programming in Java By BPB Balaguruswamy BPB Second
1002 Computer Networks Tanenbaum Pearson Fifth
1003 Operating Systems Chaudhari Jaico First我希望将所有发布者替换为名称BPB,仅将-> THM under publisher列替换为。使用sed,它不仅替换了Publisher列,而且还替换了Name列。我希望sed只在55到74字符之间工作。
我已经提取了第55-74字符
while IFS= read -r line; do
echo ${line:55:20}
done < $file我应该做些什么来替换特定的20个字符?
提前感谢
发布于 2020-12-26 16:51:51
类似于:
要完全替换publisher列(BPB后跟17个空格):
sed 's/^\(.\{55\}\)BPB\( \{17\}\)/\1THM\2/'若要将BPB字符串替换为THM字符串,请将其显示在publisher列中:
sed '
:1
s/^\(.\{55,72\}\)BPB/\1THM/
t1'https://unix.stackexchange.com/questions/626204
复制相似问题