如何在KSH中替换文件中的字符串

时间:2016-02-05 09:47:26

标签: awk sed ksh

我的KSH脚本应该替换同一目录中的txt文件中的字符串。

sed -i 's/"$original"/"$reversed"/' inputtext.txt

是我目前正在使用的,但它不起作用。代码或类似的东西没有错误。它只是没有用。

以下是我的全部代码:

#!/bin/ksh
original=$1
reversed=""
counter=0
echo $original | awk -v ORS="" '{ gsub(/./,"&\n") ; print  }' | \
while read char
do
   letters[$counter]+="$char"
   ((counter=counter+1))
done
length=${#original}
((length=length-1))
echo $original | awk -v ORS="" '{ gsub(/./,"&\n") ; print  }' | \
while read char
do
   reversed+=${letters[$length]}
   ((length=length-1))
done
echo $reversed
sed -i 's/"$original"/"$reversed"/' inputtext.txt
exit 0

我想,在文件" inputtext.txt" (与.sh文件相同的目录)每个等于" $ original"变为" $ reverse"。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为单引号可以阻止变量扩展。你可以试试这个:

<resources>
<style name="AppTheme" parent="AppTheme.Base">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowAllowEnterTransitionOverlap">true</item>
    <item name="android:windowAllowReturnTransitionOverlap">true</item>
    <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:fitsSystemWindows">true</item>
    <item name="android:imageButtonStyle">@style/StyleApi21</item>
    <item name="android:buttonStyle">@style/StyleApi21</item>
</style>
<style name="StyleApi21">
         <item name="android:background">?android:attr/selectableItemBackgroundBorderless</item>
</style>