我試圖從文件中刪除特定的行,然後將編輯後的行追加到文件中。我得到的最後一部分是正確的,但我的sed命令刪除舊的行不起作用。爲什麼不能sed從文件中刪除行?
sed '/^$userinput/d' file1.txt > file2.txt
這最終將所有的文件內容到新文件。而不僅僅是我想要保留的線條。用戶輸入是我想要刪除的行,由用戶給出。這是我正在爲班級工作的BASH項目。我想通過刪除它從文件中刪除該行。
sed "/^${1}$/d" file > otherfile
這增加了所有行想要和不想要
sed "/^$1/d" file > otherfile
創建空文件
繼承人是我與幹活的聲明。最後讓它粘貼進去。
update(){
read -p "Enter the course number of the course you would like to update: " updateInput
grep $updateInput my_course.txt>update.txt
typeset -i status
typeset grade
if [ $? -eq 0 ]
then
read -p "Status: " status
while(true)
do
if [ $status -eq 0 ]
then
break
elif [ $status -eq 1 ]
then
break
else
printf "Enter either a 0 or 1\n"
fi
done
read -p "Grade: " grade
while(true)
do
if [ $status -eq 0 ]
then
break
elif [ $status -eq 1 ]
then
break
else
printf "Enter either a 0 or 1\n"
fi
done
read -p "Grade: " grade
while(true)
do
case $grade in
A)
break
;;
B)
break
;;
C)
break
;;
*)
read -p "Enter either an A, B, C: " grade
;;
esac
done
sed "/^$updateinput/d" my_course.txt>my_course1.txt
awk -F, '
/^CSC/{printf$1","$2","$3"," > "update1.txt"}' update.txt
printf $status","$grade >> update1.txt
cat my_course1.txt > my_course.txt
cat update1.txt >> my_course.txt
rm update.txt
rm update1.txt
fi
}
我很抱歉沒有更快發佈它。有時候我試着粘貼它,告訴我有錯誤。
放置兩行文本文件中,並調用上述腳本其狀態爲1和後級爲A,這是TE輸出
CSC3320,系統級編程,3,1,A
這基本上是改變文件的腳本。在函數的開頭增加一個grep。
grep $updateInput my_course.txt>update.txt (This is at the beginning of the function. Everything else was at the bottom.)
sed "/^$updateinput/d" my_course.txt>my_course1.txt
awk -F, '
/^CSC/{printf$1","$2","$3"," > "update1.txt"}' update.txt
printf $status","$grade >> update1.txt
cat my_course1.txt > my_course.txt
cat update1.txt >> my_course.txt
rm update.txt
rm update1.txt
請發佈一個重現問題的腳本的最小示例。 – Sebastian 2013-03-28 03:15:40