aaaaaaaa 09
bbbbbbbb 90
ccccccccccccccc 89
ddddd 09
使用 sed/awk/replace,在上面的文本中我想删除每行第一个空格后面的任何内容。例如,输出将是:
aaaaaaaa
bbbbbbbb
ccccccccccccccc
ddddd
任何帮助将不胜感激。
答案1
塞德
sed 's/\s.*$//'
格雷普
grep -o '^\S*'
awk
awk '{print $1}'
正如评论中指出的,-o
这不是 POSIX;然而 GNU 和 BSD 都有它,所以它应该适用于大多数人。
另外,\s
/\S
可能并非在所有系统上都存在,如果您的系统无法识别它,您可以使用文字空格,或者如果您需要空格和制表符,则可以使用方括号表达式 ( [...]
) 中的那些或[[:blank:]]
字符类(请注意,严格来说\s
是相当于[[:space:]]
并包括垂直间距字符以及您可能不关心的 CR、LF 或 VT)。
假设awk
行不以空白字符开头。
答案2
cut -d ' ' -f 1 < your-file
将是最有效的。
答案3
awk '{print $1}' file
或者
sed 's/ .*//'
答案4
而那一个经过perl
,
$ perl -pe 's/^([^ ]+) .*$/\1/' file
aaaaaaaa
bbbbbbbb
ccccccccccccccc
ddddd
通过 GNU grep,
$ grep -oP '^[^ ]*' file
bbbbbbbb
ccccccccccccccc
ddddd