温馨提示:本文翻译自stackoverflow.com,查看原文请点击:bash - Delete words in a line using grep or sed
bash sed grep

bash - 使用grep或sed删除一行中的单词

发布于 2020-03-27 12:06:47

我想删除一行中带有特殊字符的三个单词,例如

输入:

\cf4 \cb6 1749,1789 \cb3 \

输出:

1749,1789

我已经尝试了几个sed和grep语句,但是到目前为止,主要由于该字符,所以没有任何效果\

我的失败尝试:

sed -i 's/ [.\c ] //g' inputfile.ext >output file.ext

查看更多

查看更多

提问者
Alan De Moin
被浏览
189
vintnes 2019-07-03 00:51

Awk接受正则表达式字段分隔符(在这种情况下为逗号或空格):

$ awk -F'[ ,]' '$0 = $3 "." $4' <<< '\cf4 \cb6 1749,1789 \cb3 \'
1749.1789
  • -F'[ ,]'-使用集合中的单个字符space/comma作为字段分隔符
  • $0 = $3 "." $4-如果我们可以将整行设置$0为Field 3,$4然后将其后跟一个文字句号,"."然后设置为Field 4 $4,请执行默认行为(打印整行)

更换<<< 'input'file,如果该文件的每一行都有相同的定界符(空格/逗号)和场数。如果您输入的文件比共享的样本复杂,请编辑问题以显示实际输入。