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

それを実行する簡単な方法を提案できますか?ありがとう

4

5 に答える 5

1
awk 'f==1{print last}{last=$0;f=1}END{print "NEW WORD\n"$0}' file 
于 2009-07-10T10:56:05.810 に答える
1

多分もう少し簡単です:

(tail -1 "$OLDFILE"; echo "hello there"; tac "$OLDFILE" | tail -n +2) | tac > "$NEWFILE"
于 2009-07-10T10:58:49.160 に答える
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"
于 2009-07-10T11:03:20.117 に答える
1

最も単純なもの:

head -n -1 "$OLDFILE"
echo "hello there"
tail -1 "$OLDFILE"
于 2009-07-10T11:05:00.003 に答える
0

私が考えることができる最も単純なもの

sed -i "$ i Text to add" file.txt
于 2012-07-11T02:38:25.833 に答える