2009-07-10 86 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 
相關問題