Yêu cầu thg 2 11, 2019 5:07 SA 130 0 1
  • 130 0 1
+1

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

Chia sẻ
  • 130 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 CÂU TRẢ LỜI


Đã trả lời thg 2 11, 2019 8:11 SA
Đã được chấp nhận
+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
Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí