gpt4 book ai didi

linux - 用适当数量的 "*"替换偶数词

转载 作者:行者123 更新时间:2023-11-29 09:26:56 24 4
gpt4 key购买 nike

我需要输入一些行数,用适当数量的“*”替换偶数行上的所有单词并将结果输出到屏幕。

例如输入:

Hi! How are you? 

It's been a while since we've met.

会给我们:

Hi! *** are ****

It's **** a ***** since ***** met.

这是我尝试过的:

#!/bin/bash

res=""

mm="*"

i=0

while IFS= read -r line; do

for word in line

do

tmp=""

lng=${#word}

if [ $(($lng % 2)) -eq 0 ];

then

while [ $i -lt $lng ]; do

tmp=$tmp$mm

let i=i+1

done

res+=${tmp}

else

res+=${word}

fi

done

done

echo -e "${res}"

但是它并没有做它应该做的事情(

有什么建议吗?

最佳答案

作为 perl 的一行代码:

$ echo "Hi! How are you?\nIt's been a while since we've met." \
| perl -pe 's/\S+\s+\K(\S+)/"*" x length($1)/eg'
Hi! *** are ****
It's **** a ***** since ***** met.

基本上,对于每对由空格分隔的单词,用与其长度相等的星号替换第二个单词。

关于linux - 用适当数量的 "*"替换偶数词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58679426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com