- 论坛徽章:
- 1
|
我就写了一下,有点多
#! /bin/bash
echo -e "exchange ramdom line"
read -p "input line_number 1:" l1
read -p "input line_number 2:" l2
read -p "input file absolty path:" path
awk '{print NR,$0}' $path > path.bak
t1=$(awk -v line=$l1 '{if(NR==line) print $2}' path.bak)
t2=$(awk -v line=$l2 '{if(NR==line) print $2}' path.bak)
awk -v line=$l1 -v tmp=$t2 '{if(NR==line) $2=tmp} {print $0}' path.bak > path.bak1
awk -v line=$l2 -v tmp=$t1 '{if(NR==line) $2=tmp} {print $2}' path.bak1 > path.bak2
echo -e "Final resualt is:"
awk '1' path.bak2
read -n1 -t5 -p "Do you want to save the result[Y/N]?" answer
echo ""
case $answer in
Y|y)
read -p "input the absoluty path to save: " path1
echo "your path is $path1"
cp path.bak2 $path1
;;
N|n)
echo "shell is to exit"
;;
*)
echo "input error"
;;
esac
rm -f path.bak*
exit 0
|
|