我有下面的代码,每10个单词拆分一行。你知道吗
#!/bin/bash
while read line
do
counter=1;
for word in $line
do
echo -n $word" ";
if (($counter % 10 == 0))
then
echo "";
fi
let counter=counter+1;
done
done < input.txt
问题是分裂点是第10个字。相反,我希望分割点是第一个逗号字符(仅适用于超过10个单词的句子)。你知道吗
示例:
第1行:来自测试行的短语,我想拆分,但我不知道如何拆分。你知道吗
至
第1行:来自测试行的短语, 第二行:我想分开,但我不知道怎么分开。你知道吗
如果找不到逗号字符,则只需返回该行。你知道吗
谢谢!你知道吗
编辑:Python或Bash解决方案可以工作。你知道吗
下面是一个简单的解决方案,它检查字符串中的字数。如果字符串中的字数大于10,则将拆分:
我不确定您是要拆分
10
个单词还是15
个单词。你知道吗在处理
15
单词时,只需将10
替换为15
。你知道吗或者更清楚地说:
一个更好的方法是使用
awk
测试15个或更多的单词,如果是这样,就用",\n"
代替", "
,例如示例使用/输出
使用
file
中的输入,您将拥有:(如果有大量行,
awk
将比shell循环快几个数量级)相关问题 更多 >
编程相关推荐