![](/img/trans.png)
[英]How to copy the first few lines of a giant file, and add a line of text at the end of it using some Linux commands?
[英]How to display the first word of each line in my file using the linux commands?
我有一個包含許多行的文件,我想用Linux命令只顯示每行的第一個單詞。
我怎樣才能做到這一點?
嘗試使用grep執行此操作:
grep -Eo '^[^ ]+' file
你可以使用awk
:
awk '{print $1}' your_file
這將“打印” your_file
的第一列( $1
)。
嘗試使用coreutils cut
執行此操作:
cut -d' ' -f1 file
我看到已有答案了。 但你也可以用sed做到這一點:
sed 's/ .*//' fileName
以上解決方案似乎適合您的具體情況。 對於問題的更一般應用,請考慮單詞通常被定義為由空格分隔,但不一定是空格字符。 例如,文件中的列可以是制表符分隔的,或者甚至是由制表符和空格的混合分隔。
前面的示例對於查找以空格分隔的單詞都很有用,而只有awk示例還可以找到由其他空格字符分隔的單詞(事實上,這在各種sed / grep版本中統一執行起來相當困難)。 您可能還希望通過修改awk語句顯式地跳過空行:
awk '{if ($1 !="") print $1}' your_file
如果你也擔心空字段的可能性,即以空格開頭的行,那么就會有一個更健壯的解決方案。 我不是很熟悉awk為這種情況生成一個單行程,但是一個簡短的python腳本可以實現這個技巧:
>>> import re
>>> for line in open('your_file'):
... words = re.split(r'\s', line)
... if words and words[0]:
... print words[0]
...或在Windows上(如果你有GnuWin32 grep):
grep -Eo "^[^ ]+" file
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.