Text-Processing
如何使用 sed 僅替換特定的 20 個字元
文件.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
- 否:數字 (4) – 唯一標識每本書
- 標題:字母數字 (30)
- 作者:人物(20)
- 發布者:角色(20)
- 版本:字元(9)
我想將所有具有名稱的發布者替換
BPB
為 ->THM
僅在發布者列下。使用sed
,它不僅替換Publisher列下,還替換Name列下。我只想sed
在第 55 個字元到第 74 個字元之間工作我已經使用提取了第 55-74 個字元
while IFS= read -r line; do echo ${line:55:20} done < $file
我應該怎麼做才能只替換特定的 20 個字元?
提前致謝
就像是:
要完全替換發布者列(
BPB
後跟 17 個空格:sed 's/^\(.\{55\}\)BPB\( \{17\}\)/\1THM\2/'
要將
BPB
字元串替換THM
為發布者列中出現的任何位置:sed ' :1 s/^\(.\{55,72\}\)BPB/\1THM/ t1'