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