如何從這個輸出只提取字符串q9I9YP1V013809:grep的混合文件中的特定字符串,在Linux上
q9I9YP1V013809 1472 Thu Oct 18 11:34 [email protected]
[email protected]
[email protected]
[email protected]
預期查看:
q9I9YP1V013809
如何從這個輸出只提取字符串q9I9YP1V013809:grep的混合文件中的特定字符串,在Linux上
q9I9YP1V013809 1472 Thu Oct 18 11:34 [email protected]
[email protected]
[email protected]
[email protected]
預期查看:
q9I9YP1V013809
我會做:
awk 'NF>1{print $1}' file
因爲OP沒有提及任何規則期望的字符串。它也可能有'@'。
測試:
kent$ echo "q9I9YP1V013809 1472 Thu Oct 18 11:34 [email protected]
[email protected]
[email protected]
[email protected]"|awk 'NF>1{print $1}'
q9I9YP1V013809
一個的許多方面。如果第一個字段不包含@
,請將其打印出來。
awk '$1 !~ /@/ { print $1; }' infile
要跳過以空格開始,所有線路,併爲剩餘的文件空間之後刪除一切,做
grep -v '^ ' file.in | sed "s/ .*//"
相比AWK,您需要啓動兩個進程,但所做的事情要清楚得多。
另一種解決方案,僅sed
:
sed "/^ /d;s/ .*//" file.in
不清晰,但只有一個過程。第一個sed
命令(/^ /d
)刪除所有以空格開頭的行;第二個命令與上面相同。
您可以檢查@
人物的存在或基於它存在於這種命令字段#:
awk 'NF > 5 { print $1 }' input.file
如果它總是第一個字,等多條線路與空白使用前綴:
<infile grep -Eo '^[^[:blank:]]+'
非常有幫助,謝謝。 –