2016-03-28 36 views
0

Ben her satırı formu b ve d sayılardırBelirli formdaki satırların bölümleri nasıl değiştirilir?

b d 

ait olan büyük bir dosya var. b rasgele bir sayı (yani değişmeden kalmalıdır) nerede olduğunu

b 1 

form

b -1 

tüm satırları değiştirmek istiyorum. Somut bir örnek için

, dosya

0.2 0.5 
0.1 -1 
0 -1 
0.3 0.6 

, diyelim ki, sed veya benzer bir aracı kullanarak bunu başarmak için kolay bir yol var mı

0.2 0.5 
0.1 1 
0 1 
0.3 0.6 

haline gelmelidir?

Düzeltme. Tüm - kayıtlarını bir dosyadan kaldırmak için yeterlidir. Bu gözlem için @Cyrus'a teşekkürler. Bu sorun şimdi çözülmüştür, ancak daha genel bir modelle dosyaların bu şekilde nasıl değiştirileceğine dair genel soru açık kalmaktadır. Cevaplar hala açığız.

tr -d '-' <old_file> new_file 

veya 1 tarafından sütunda 2'deki tüm -1 değiştirin::

+1

Tüm '-' bir dosyadan kaldırmak istiyor musunuz? – Cyrus

+1

Eh, şimdi bahsettiniz, evet, sorun tüm '' 'bir dosyadan kaldırma birine eşdeğerdir. Güzel gözlem. :-) Bunu düşünmedim çünkü -1'in ortalama sonsuzluğu ve bu dosyalar bir [derecelendirilmiş modül] temsilidir (https://en.wikipedia.org/wiki/Graded_ring#Graded_module). – blazs

cevap

2

bu deneyin

awk '$2==-1 {$2=1} 1' old_file > new_file 

veya GNU ile sed:

sed 's/ -1$/ 1/' old_file > new_file 

Dosyanızı düzenlemek istiyorsanız GNU sed ile "yerinde" sed's seçeneğini kullanın -i:

sed -i 's/ -1$/ 1/' file 
İlgili konular