2017-08-11 45 views
0

對於命令 cat .asc |頭-1如何避免分隔符在shell腳本中打印時替換日期值

輸出 三十零分之十/ 2006,19:41:58,1.4871,1,E

我想追加逗號這條線,以保持場的一致性。

所以,我試圖各種組合等發出, 命令:回波cat <file_name>.asc | head -1 ,,,輸出:,,, 30/2006,19:41:58,1.4871,1,E 命令:回聲cat <file_name>.asc | head -1,輸出:0 /30/2006,19:41:58,1.4871,1,E 命令:echo cat <file_name>.asc | head -1「,,,」輸出:,,, 30/2006,19:41:58,1.4871,1,E 命令:chk = $(回聲cat <file_name>.asc | head -1) 回聲$ {CHK} ,,, 輸出:,,, 30/2006,19:41:58,1.4871,1,E

但是我的期望輸出是很簡單的, 10 /30/2006,19:41:58,1.4871,1,E ,,

其實我的邏輯是用CAT打開一個文件,並在每一行上執行一段時間的操作來檢查數據並在需要時追加逗號並將輸出寫入另一個文件。

花了差不多半天的時間,還沒弄清楚。

請幫忙。

+0

您不需要打擾'cat',只是'head -1 file'和:'$ echo $(head -1文件),,,'。 –

+0

詹姆斯,不工作的傢伙。 – user3807020

+0

命令:echo $(head -1 .asc),,,輸出:,,, 30/2006,19:41:58,1.4871,1,E – user3807020

回答

1

如果我理解正確的,你想這樣做轉換:

10/30/2006,19:41:58,1.4871,1,E --> 10/30/2006,19:41:58,1.4871,1,E,,, 

如果是這樣,那麼你應該使用sed的 UTIL:

cat <file_name>.asc | sed -e 's/$/,,,/' > output_file 
+0

嗨魯斯蘭,你明白我的意思。命令:cat .asc |頭-1 | sed -e's/$/,,, /'輸出:,,, 30/2006,19:41:58,1.4871,1,E不工作的傢伙。我也嘗試從管道中刪除頭部命令,但沒用。 – user3807020

+0

其實我的動機是做這樣的事情,10/30/2006,19:41:58,1.4871,1,E - > 10/30/2006,19:41:58,1.4871,1,E, ,, 所以我將不得不獲取行文件並追加逗號,最後以一個靜態變量結束它們,並將其作爲參數傳遞給腳本。請幫助。它吃了我的頭。 – user3807020

+0

我看到詹姆斯布朗已經幫助你,很高興看到它。 祝您有愉快的一天。 –

0
echo `head -n 1 cat.asc`,,, 

如果您需要這一個變量,它是這樣的:

X=`head -n 1 cat.asc`,,, 

這回答你問的問題。但是,您還提到您要處理整個文件並對每行進行一些調整。在這種情況下,我不明白這種方法將如何幫助......