[英]how to create same line if else statement around wc -l output
我對tcsh一點都不熟悉,所以我真的希望有人可以對我在這里缺少的東西有所了解。 我正在嘗試構建單行的if else語句,該語句檢查文件中的行數,如果行數> 1,則輸出觸摸文件。我正在檢查行數是否大於1,因為文件可以僅使用標題信息生成。 (另外,如果任何人有任何有用的在線指南,我可以將其用於所有tcsh,那也將非常有幫助)
示例文件1(具有數據):
title1,title2 data1,data2
示例文件2(空):
TITLE1,標題2
預期產量:
如果文件包含數據,則生成has_data.txt,否則不生成文件
我嘗試過的
wc -l dummy_file_empty.txt> 1 &&觸摸has_data.txt- 實際評估結果不大於
更新 ``用於在線路評價語句,$輸出是一個數組? 所以需要參考索引1來獲得行數
設置output =`wc -l dummy_file_empty.txt` | if($ output [1]> 1)touch has_data.txt- 返回表達式語法錯誤
如果(wc -l dummy_file_empty.txt)> 10 touch has_data.txt- 返回表達式語法錯誤
如果bash中存在解決方案,我也可以調用bash shell(請參見示例,其中bash在語句bash的末尾通過管道傳輸,並對其進行了測試以確保其在我的機器上可以工作)
[[ $(cat file.txt | wc -l) -gt 1 ]] && touch has_data.txt
當您使用>
這將嘗試寫入文件。 在這種情況下,文件名為1
或10
。 您要使用-gt
代表大於。
如果您正在tcsh
終端中運行此命令,則可以通過bash調用此命令:
bash -c '[[ $(cat file.txt | wc -l) -gt 1 ]] && touch has_data.txt'
只是想在距離我有點近的地方添加一個解決方案。盡管我實際上無法處理文件可能不存在的情況。 希望有人對這是否是一個好方法有指導。
設置輸出=`wc -l file.txt` &&如果($ output [1]> 1)觸摸has_data.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.