第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

查找和替換特定列中的破折號

查找和替換特定列中的破折號

牧羊人nacy 2021-03-22 17:14:09
我有一個包含五列的文件。文件1看起來像:1111    1111    exm-IND1-200449980  I   I1111    1111    exm-IND1-201453487  I   -1111    1111    exm-IND1-85310248   I   I1111    1111    exm-IND10-102817747 D   D1111    1111    exm-IND10-18329639  -   D1111    1111    exm-IND10-27476467  I   I1111    1111    exm-IND10-27727540  D   -我只想刪除第-4列和第5列,并在這些情況下替換-為0。我一直在使用以下代碼行:sed '/^\([^\t]*\t[^\t]*\t[^\t]*\)\t-\t-\(.*\)/ s//\1\t0\t\2/' file1 > newfile解決問題,但感覺這有些笨拙。有沒有人對此問題有更簡潔的建議?因為我會遇到很多。預先感謝您的幫助。
查看完整描述

4 回答

?
PIPIONE

TA貢獻1829條經(jīng)驗 獲得超9個贊

Awk是一個更好的選擇:

awk '{sub("-","0",$4); sub("-","0",$5); print}'


查看完整回答
反對 回復 2021-03-31
?
千萬里不及你

TA貢獻1784條經(jīng)驗 獲得超9個贊

GNU sed

sed -r ':k;s/-(\s*\S*)$/0\1/g;tk' file

..輸出:


1111 1111 exm-IND1-200449980 II

1111 1111 exm-IND1-201453487我0

1111 1111 exm-IND1-85310248 II

1111 1111 exm-IND10-102817747 DD

1111 1111 exm-IND10-18329639 0 D

1111 1111 exm-IND10-27476467 II

1111 1111 exm-IND10-27727540 D 0


查看完整回答
反對 回復 2021-03-31
?
炎炎設計

TA貢獻1808條經(jīng)驗 獲得超4個贊

這就是你想要的:


$ awk '$4=="-"{$4=0}$5=="-"{$5=0}{$1=$1}1' OFS='\t'  file

1111    1111    exm-IND1-200449980      I       I


1111    1111    exm-IND1-201453487      I       0


1111    1111    exm-IND1-85310248       I       I


1111    1111    exm-IND10-102817747     D       D


1111    1111    exm-IND10-18329639      0       D


1111    1111    exm-IND10-27476467      I       I


1111    1111    exm-IND10-27727540      D       0


查看完整回答
反對 回復 2021-03-31
  • 4 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號