簡體   English   中英

如何在wc -l輸出周圍創建if語句的同一行

[英]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

當您使用>這將嘗試寫入文件。 在這種情況下,文件名為110 您要使用-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM