簡體   English   中英

我如何使用awk忽略逗號?

[英]How can i use awk to ignore a comma?

如何在下面使用awk分隔逗號

1, servername, url, Properties, hostname, version, os, application server.

我已將以上行保存在名為test.properties的文件中,並使用以下命令

awk  '{ print $1 }' test.properties

我只想在輸出中打印服務器名稱,而是打印整行。

在這種情況下我應該使用切割嗎?

鑒於:

$ echo "$txt"
1, servername, url, Properties, hostname, version, os, application server

只需將字段分隔符正確設置為逗號即可:

$ echo "$txt" | awk -F, '{print $1}'    
1

或者,如您所說,使用cut

$ echo "$txt" | cut -d , -f1    
1

是的,您應該在這種情況下使用cut,這是它設計的目的。

如果您的字符串僅包含來自ASCII 0x20-0x7f字符(反斜杠(\\) 0x5c除外),則也可以使用bash內置函數 (請注意StéphaneChazelas提到的有關處理shell變量的警告):

s='1, servername, url, Properties, hostname, version, os, application server'
IFS=', ' read _ server _ <<<"$s"
echo "'$server'"

輸出:

'servername'

或使用位置參數:

oIFS="$IFS"
export IFS=', '
set -- $s
echo $2
IFS="$oIFS"

要么:

function getserver() (
  export IFS=', '; set -- $1; echo $2
)
getserver "1, servername, url, Properties, hostname, version, os, application server"

輸出:

servername

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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