Bash 猪拉丁标点符号
我有一个文件,它接收另一个文件的文本并将其转换为pig拉丁语,它工作得很好,除了以下单词中的标点符号:Bash 猪拉丁标点符号,bash,shell,loops,if-statement,sed,Bash,Shell,Loops,If Statement,Sed,我有一个文件,它接收另一个文件的文本并将其转换为pig拉丁语,它工作得很好,除了以下单词中的标点符号: what'say变成了atwhay'say,而不是我想要的东西 at'swhay将成为什么 代码: echo$( 一美元一只猫` 做 如果[$i=~^[B-DF-HJ-NP-TV-XZ]] 然后 echo$i|sed-e的s/\(\\)/\U\2\L\3\L\1ay/g' elif[$i=~^[b-df-hj-np-tv-xz]] 然后 echo$i| sed-e的s/\(\\)/\2\1ay
what'say
变成了atwhay'say
,而不是我想要的东西
at'swhay将成为什么
代码:
echo$(
一美元一只猫`
做
如果[$i=~^[B-DF-HJ-NP-TV-XZ]]
然后
echo$i|sed-e的s/\(\\)/\U\2\L\3\L\1ay/g'
elif[$i=~^[b-df-hj-np-tv-xz]]
然后
echo$i| sed-e的s/\(\\)/\2\1ay/g'
其他的
echo$i|sed-e's/\(\\)/\1yay/g'
fi
完成
)
感谢所有能够帮助我解决这个标点错误的人将[[:alpha:][]*
更改为[:alpha:]['\'''''''''.*
--是的,在单引号字符串中包含单引号是很难看的。不必要的外部echo
有什么用?外部echo
是为了防止文本文件在返回分隔的列表中输出,因为我想保持它的原始格式尽可能好,我可以。我想不出更好的办法了。非常感谢。更改成功了,我也可以将其应用到其他标点符号上。将[[:alpha:][]*
更改为[[:alpha:]['\''''''']*
--是的,在单引号字符串中包含单引号是很难看的。不必要的外部echo
是怎么回事?外部echo
是为了防止文本文件以返回分隔的列表输出,因为我希望尽可能保持其原始格式。我想不出更好的办法了。非常感谢。这个改变奏效了,我也能把它应用到其他标点符号上。
echo $(
for i in `cat $1`
do
if [[ $i =~ ^[B-DF-HJ-NP-TV-XZ] ]]
then
echo $i | sed -e 's/\(\<[B-DF-HJ-NP-TV-XZ]\+\)\([[:alpha:]]\)\([[:alpha:]]*\>\)/\U\2\L\3\L\1ay/g'
elif [[ $i =~ ^[b-df-hj-np-tv-xz] ]]
then
echo $i | sed -e 's/\(\<[b-df-hj-np-tv-xz]\+\)\([[:alpha:]]*\>\)/\2\1ay/g'
else
echo $i | sed -e 's/\(\<[[:alpha:]]*\>\)/\1yay/g'
fi
done
)