Asked Feb 11th, 5:07 AM 87 0 1
  • 87 0 1
+1

Làm thế nào để chạy sed script để edit file mà không bị lỗi

Share
  • 87 0 1
sed -i 's/[()]// g' 
sed -i 's/[ ]// g' 
sed -i 's/[-]// g' 
sed -i 's/\([0-9][0-9]\)\([0-9]\)\([0-9][0-9][0-9][0-9]\)\([0-9]\)/\1\4\3\2/' 
sed -i -e 's/8/F/ g' -e 's/6/S/ g' -e 's/7/D/ g' -e 's/9/G/ g' -e 's/4/t/ g' -e 's/2/e/ g' -e 's/3/r/ g' -e 's/0/q/ g' -e 's/1/w/ g' -e 's/5/A/ g'
sed -i '/^[a-z]/aKhangTrann' 

Mình tạo sed script bằng dòng lệnh: vi test.sed

Sau đó mình đánh những dòng này vô rồi lưu lại. Rồi mình chạy dòng lệnh $ sed -r -f minor1.sed phone.txt ---- mình muốn chỉnh sửa số file các số điện thoại

(866) 879-7647
(888) 474-7424
(371) 670-6006
(866) 266-5588
(844) 415-3955
(800) 237-2747
(800) 667-2747

thành:

FSSFDGDStD
FFttDtDFet
rDqSDqSwqS
KhangTrann
FSAeSSASFF
FtGtwArtAA
FqDerDeqtD
FqDSSDeqtD

Các dòng code bên trên đều chạy ổn nếu mình sử dụng script test.sed rồi xài các dòng code đó ngay tại command linux screen. Còn nếu mình muốn no chạy thành một cái file sed thì lỗi là : sed: file test.sed line 1: unterminated `s' command

1 ANSWERS


Answered Feb 11th, 8:11 AM
Accepted
+3

Nếu bạn dùng file thì sẽ không có đoạn sed -i ... nữa mà chỉ có sed script thôi.

Của bạn thì file sẽ như thế này

s/[()]// g
s/[ ]// g
s/[-]// g
s/([0-9][0-9])([0-9])([0-9][0-9][0-9][0-9])([0-9])/\1\4\3\2/
s/8/F/ g
s/6/S/ g
s/7/D/ g
s/9/G/ g
s/4/t/ g
s/2/e/ g
s/3/r/ g
s/0/q/ g
s/1/w/ g
s/5/A/ g
/^[a-z]/aKhangTrann
Share