ファイル.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
置き換えるだけでなく発行者コラムだけでなく名前柱。私は間sed
でしか働きたい55番目の文字到着74番目の文字
以下を使用して文字55-74を抽出した。
while IFS= read -r line; do
echo ${line:55:20}
done < $file
特定の20文字だけを変更するにはどうすればよいですか?
事前にありがとう
答え1
それは次のとおりです。
サイト運営者の列全体を置き換えます(BPB
後に17個の空白)。
sed 's/^\(.\{55\}\)BPB\( \{17\}\)/\1THM\2/'
[発行者]列に文字列が表示されるたびにBPB
文字列を置き換えるには、次の手順を実行します。THM
sed '
:1
s/^\(.\{55,72\}\)BPB/\1THM/
t1'