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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值