2016-04-14 13 views
1

cut kullanarak bir dizenin bir bölümünü almak istiyorum. İşte bir kukla örnek:Son CR karakterini "cut" ile kaldırmak için <a0></ a0>

$ echo "foobar" | cut -c1-3 | hexdump -C 
00000000 66 6f 6f 0a          |foo.| 
00000004 

Bildirimi \n karakter sonuna eklenmektedir. Bu durumda

aşağıdaki gibi son kömürü çıkarmak için cut kullanmak için hiçbir nokta vardır:

echo "foobar" | cut -c1-3 | rev | cut -c 1- | rev 

Hala bu ekstra ve istenmeyen kömürü alacak ve o şekilde fazladan komutunu kullanarak önlemek istiyoruz :

shasum file | cut -c1-16 | perl -pe chomp 

cevap

4

\necho ilave edilir. Bunun yerine, printf kullanın:

$ echo "foobar" | od -c 
0000000 f o o b a r \n 
0000007 
$ printf "foobar" | od -c 
0000000 f o o b a r 
0000006 

Çok komik cut kendisi de yeni bir satır ekler:

$ printf "%s" $(cut -b1-3 <<< "foobar") | od -c 
0000000 f o o 
0000003 
:

$ printf "foobar" | cut -b1-3 | od -c 
0000000 f o o \n 
0000004 

Yani çözüm onun çıkışına printf kullanarak görünüyor

İlgili konular