2009-07-10 52 views
1

例如,我需要在文本文件中插入字符串,例如,在结束第一行之前插入字符串。将行插入文件中特定位置的简单方法

STRINGS=`wc -l $OLDFILE \ 
    | awk '{print $1-1}' \ 
    | sed "s/$DOLLAR/+/g" \ 
    | tr -d \\\n \ 
    | sed "s/+$DOLLAR//" \ 
    | bc` 
ADDFILE=$3 
head -n $STRINGS $OLDFILE > $NEWFILE 
cat $ADDFILE >> $NEWFILE 
tail -n 1 $OLDFILE >> $NEWFILE 

你可以建议简单的方法来执行它吗? 感谢

+1

我认为你的意思是“特别”(或者也许是“任意”)。 “随机”意味着别的东西。 – 2009-07-10 13:20:01

+0

是的,你是对的 – taro 2009-07-10 14:14:29

+3

虽然公平的说,随机存取存储器? – Skilldrick 2009-07-23 08:26:12

回答

1
awk 'f==1{print last}{last=$0;f=1}END{print "NEW WORD\n"$0}' file 
+0

谢谢,它有帮助 – taro 2009-07-10 14:20:30

1

也许有点简单:

(tail -1 "$OLDFILE"; echo "hello there"; tac "$OLDFILE" | tail -n +2) | tac > "$NEWFILE" 
1

另一个(纯bash)的解决方案:

prev= 
print= 
IFS= 
while read -r line; do 
    if [ "$print" ]; then 
     echo "$prev" 
    fi 
    print=1 
    prev="$line" 
done < "$OLDFILE" 
echo "hello there" 
echo "$prev" 
1

最简单的一个:

head -n -1 "$OLDFILE" 
echo "hello there" 
tail -1 "$OLDFILE" 
0

最简单一个我能想到的

sed -i "$ i Text to add" file.txt 
相关问题