我正在尝试剪掉文件中每一行的中间部分。所有的行都是这样的:
79.472850 97 SILENCE
我需要结束:
79.472850 SILENCE
由于每行都有从字符 10 开始到字符 14 结束的不需要的部分,
我试图以这种方式使用 sed:
sed "s/\(.\{9\}\).\{6\}//"
但我最终得到了字符 14 之后的所有内容。制表符空间后面的数字在每个文件中都会发生变化。我该怎么做才能让 sed 只剪掉制表符和两位数字?
感谢您的帮助。
根据您的输入和预期输出,这可以是一种方式:
$ echo "79.472850 97 SILENCE" | tr -s " " | cut -d" " -f1,3
79.472850 SILENCE
-
tr -s " "
删除重复的空格。
-
cut -d" " -f1,3
根据空格分割打印第一个和第三个字段。
With sed
:
$ sed 's#\([^ ]*\)[ ]*\([^ ]*\)[ ]*\([^ ]*\)#\1 \3#g' <<< "79.472850 97 SILENCE"
79.472850 SILENCE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)