shell - xargs用于字符串分割

today is sunny#Ted wanna
go outside 

to play 

上面这段话格式非常乱,单词分割有用到空格、换行符和#,如果我想统计里面的单词列表,该怎么做?

假设这句话放在文件word.txt中。

# cat words.txt | xargs -n1 -d"#"
today is sunny
Ted wanna
go outside 

to play 


这里用xargs来实现,xargs一般用来获取参数列表,默认会以空格、回车等不可见符号作为分隔符来获取参数列表,这里通过"-d"指定分隔符为"#"。“-n1”的意思是每次获取一个参数。

我们再进行一次分割就可以获取到所有单词。

# cat words.txt |xargs -n1 -d"#"|xargs -n1
today
is
sunny
Ted
wanna
go
outside
to
play

两次分割顺序不能变,要不然分割结果会包含空行或空格,可以自行尝试。

每次获取两个参数:

# cat words.txt |xargs -n2
today is
sunny#Ted wanna
go outside
to play

猜你喜欢

转载自blog.csdn.net/lx1848/article/details/106584851