gpt4 book ai didi

unix - 我必须更换所有的?在 unix 中使用 X 除了一些有效的?

转载 作者:行者123 更新时间:2023-12-02 16:12:16 26 4
gpt4 key购买 nike

这是个复杂的问题。我想更换所有的?在带有 X 的文件中。但问题是有一些有效的 ?也存在于输入文件中。

例如:

输入:

HELLO ?, WELCOME TO THE NEW WORLD??23, and you are most ? valid person.

输出:

HELLO X, WELCOME TO THE NEW WORLDX?23, and you are most X valid person.

在这里,?在 23 之前出现是有效的。像 ?23,那里有很多值。 ?24、?33、?45 等,

我尝试使用 sed 脚本,但能够找到确切的命令。

我使用的脚本:

LINE_NUM=0 

while IFS= read -r LINE
do
LINE_NUM=$?
EXTRACTED=`echo "${LINE}" |grep '?23' | sed 's|^.*\?23||; s|\?[0-9].*$||'`

if [ -n "$EXTRACTED" ]
then
UPDATED=`echo "$EXTRACTED" | sed 's/?/X/g'`
UPDATED_1=`echo "$UPDATED" | awk '{gsub("/","%",$0); print}'`
if [ $EXTRACTED != $UPDATED ]
then
LATEST_VALUE=`echo "${LINE}" | sed "s|${EXTRACTED}|${UPDATED}|g"`
fi

LATEST_VALUE=`echo "${LINE}"`
echo "$LATEST_VALUE" >> outputfile.txt
else
echo "$LINE" >> outputfile.txt
fi
done<inputfile.txt

最佳答案

$ echo "HELLO ?, WELCOME TO THE NEW WORLD??23, and you are most ? valid person." | 
sed -E 's/\?([^0-9]|$)/X\1/g'


HELLO X, WELCOME TO THE NEW WORLDX?23, and you are most X valid person.

这里它转义 ? 后跟一个数字(或行尾)。如果您的列表受到更多限制,请更改那里的正则表达式。

关于unix - 我必须更换所有的?在 unix 中使用 X 除了一些有效的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67671834/

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