-1
我有一個文本文件,課程,看起來像這樣:使用bash編輯文本文件和顯示輸出
csc 4567 - Computer Programming
This course is about stuff...blah blah blah
4.0000 credit hours
我需要寫一個bash腳本,它的文本文件,並提取必要的信息顯示課程編號,課程名稱,課程學分。沒有空格,只是逗號之間。課程學分作爲整數。
我可以使用命令行提取信息,但是在寫入bash腳本時我丟失了。我猜我應該使用grep和sed與bash?我不確定。這就是我所擁有的(這顯然不是近乎正確的)。任何意見,將不勝感激。
while read courses.txt
do
$courseLine=grep -iE '^csc [0-9]{4}'
$creditHours=grep -iE '^[0-4]'
$courseNumber=${courseLine#/s/s*}
$courseName=${courseLine%/s/s*}
printf "$courseNumber,$courseName,$creditHours"
done
上面我試圖做到的是:讀取文件中的行 保存 - 當然行 「CSC 4567比較前衛」保存「4」學分 保存所有左側的第二空間,當然行因爲課程號碼 保存所有課程行中第二個空格的權利,因爲課程名稱 然後顯示我想要的輸出。
應該打印csc4567,計算機程序設計,4
是的,這是家庭作業,但由於我是新來的論壇,它不會讓我標記後如此。
因此,在該例(csc 4567)的情況下應該打印什麼? – Beta 2013-03-28 03:38:41
你對bash語法缺乏一些基本的瞭解。就像你必須使用'var = $(command)'或'var = \'command''把一個命令的輸出放入一個變量中,而不是'var = command'。順便說一句,即使是老用戶也不能使用作業標籤,因此已棄用。 – Barmar 2013-03-28 03:44:40
你可以使用像sed這樣的工具嗎?或者它必須是純粹的bash嗎? – Beta 2013-03-28 04:08:37