我正在尝试创建一个显示预订的 HTML 表,例如:
9am 10am 11am
|--------|--------|--------|
Mon |<booked>|<booked>| |
|--------|--------|--------|
Run Code Online (Sandbox Code Playgroud)
我可以轻松完成大部分工作,但我无法弄清楚如何让标题行上的时间出现在列之间的行上方居中,如上所示,而不是出现在列中的单元格内,例如:
9am 10am 11am
|--------|--------|--------|
Mon |<booked>|<booked>| |
|--------|--------|--------|
Run Code Online (Sandbox Code Playgroud)
我一直在尝试几种解决方法,包括为每个“真实”列设置 3 列,这样我就可以将它们合并到标题行上,但这让我需要填充数据行的中间单元格,使其看起来像一个简单的单元格边界所以不是很好。
我觉得这很简单,但到目前为止,谷歌和反复试验都让我失望。
我试图在 Joomla 网站上的 K2 文章中执行此操作,因此我更喜欢仅在 HTML 中执行此操作的方法,而不是定义 CSS 样式表,因为这会在 Joomla 中打开 K2 文章的另一个问题。
在这里编辑是我要感谢@Johannes 的回答,但避免使用 CSS 样式表,因此我不必处理在 K2/Joomla 中实现它:
9am 10am 11am
|--------|--------|--------|
Mon |<booked>|<booked>| |
|--------|--------|--------|
Run Code Online (Sandbox Code Playgroud)
我是awk脚本的新手,想要帮助计算包含这些数据的文件的第95百分位值:
0.0001357
0.000112
0.000062
0.000054
0.000127
0.000114
0.000136
Run Code Online (Sandbox Code Playgroud)
我试过了:
cat filename.txt | sort -n |
awk 'BEGIN{c=0} {total[c]=$1; c++;} END{print total[int(NR*0.95-0.5)]}'
Run Code Online (Sandbox Code Playgroud)
但是当我把它与excel比较时,我似乎没有得到正确的值.
我有从 bash shell 调用的以下(经过修改的)psql 脚本:
foo=$( psql -q -t -R $'\x01' -F $'\x02' \
--variable="title=something" \
--variable="severity=level9" \
--pset='format=unaligned' \
<<'EOF'
SET standard_conforming_strings=on;
SET myvars.title = :title;
SET myvars.severity = :severity;
DO $$
BEGIN
IF EXISTS ( SELECT 1 from my_database
WHERE title=current_setting('myvars.title') \
AND severity=current_setting('myvars.severity') )
THEN
RAISE NOTICE 'Found existing entry';
ELSE
RAISE NOTICE 'Did not find existing entry';
END IF;
END;
$$;
EOF
)
Run Code Online (Sandbox Code Playgroud)
我希望在 bash 变量“foo”中捕获查询是否成功的一些指示。我想我可以在每个 RAISE NOTICE 语句之后添加某种 print/echo/return/whatever 语句,以从语句中输出 0 或 1,psql以便可以捕获它 …
如果我使用这个简单的data.table(一列)
mydata <- data.table(A=c("ID123", "ID22", "AAA", NA))
Run Code Online (Sandbox Code Playgroud)
我可以找到以"ID"开头的行的位置
grep("^ID", mydata[,A])
Run Code Online (Sandbox Code Playgroud)
如何使用数字来获得相同的结果?(说我想要第一栏).
我试过了
grep("^ID", mydata[,1, with=F])
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
更重要的是,我想以data.table方式执行此操作,在括号内引入命令.
mydata[,grep("^ID",.SD), .SDcols=1]
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
我已经找到了这种方式,但它太复杂了
mydata[,lapply(.SD, grep,pattern="ID"), .SDcols=1]
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
稍微复杂一点:
如果我想同时计算多少行不是NA并以"ID"开头怎么办?
就像是
any(!(grepl("^ID", mydata[,A] ) | is.na(mydata[,A])))
Run Code Online (Sandbox Code Playgroud)
但更紧凑,在支架内.
我不喜欢grep认为NA不匹配而不是输出NA的事实.
我有一个制表符分隔文件,在第三个字段中有时间戳,我需要在bash中更改为epoch.
样本输入:
xyz@gmail.com SALE 2017-04-26 12:47:27 30.0 1 201704
xyz@gmail.com SALE 2017-04-26 12:46:15 20.0 2 201704
xyz@gmail.com PAYBACK 2017-04-18 08:02:31 95.0 3 201704
xyz@gmail.com SEND 2017-04-18 08:00:37 4800.0 4 201704
xyz@gmail.com SEND 2017-04-17 14:59:34 4900.0 5 201704
Run Code Online (Sandbox Code Playgroud)
我尝试过awk 'BEGIN {IFS="\t"} {$3=system("date -d \""$3"\" '+%s'");print}' file,它给出了最接近的结果,但它在一行中显示了纪元,然后在换行符中再次显示记录,时间戳值为零.我要求所有人都在一个记录中替换第三个字段.
!/bin/bash
for file in ~/tdg/*.TXT
do
while read p; do
randvalue=`shuf -i 1-99999 -n 1`
sed -i -e "s/55555/${randvalue}/" $file
done < $file
done
Run Code Online (Sandbox Code Playgroud)
这是我的脚本。每次找到它时,我都试图用不同的随机数替换 55555。这目前有效,但它用相同的随机数替换了 55555 的每个实例。我试图用 $p 替换 sed 命令末尾的 $file ,但这只是失败了。
真的,即使我说到点是同一行上的每个实例都具有相同的随机数,但是每行使用一个新的随机数,那么我会很高兴。
编辑
我应该指定这一点。我想将替换的结果实际保存在文件中,而不仅仅是将结果打印到控制台。
编辑
在 JNevill 的出色帮助之后,我的脚本的最终工作版本:
!/bin/bash
for file in ~/tdg/*.TXT
do
while read p;
do
gawk '{$0=gensub(/55555/, int(rand()*99999), "g", $0)}1' $file > ${file}.new
done < $file
mv -f ${file}.new $file
done
Run Code Online (Sandbox Code Playgroud) 我正在编写一个要在 Linux 设备上运行的 bash 脚本,因此我无权安装 jq,我需要能够使用本机 Linux 工具
curl --location --request POST "https://api-mp.meraki.com/api/v1/networks/12345/switch/stacks/12345/routing/interfaces" \
--header "X-Cisco-Meraki-API-Key: 123key" \
--header "Content-Type: application/json" \
--data '{
"name": "L3 int",
"subnet": "192.168.249.0/24",
"interfaceIp": "192.168.249.2",
"multicastRouting": "disabled",
"vlanId": 140,
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
}
}' | sed -n 's|.*"interfaceID":"\([^"]*\)".*|\1|p' > $newVar
Run Code Online (Sandbox Code Playgroud)
服务器的响应返回以下内容:
{
"interfaceId": "12345",
"name": "PA L3 DR Int",
"subnet": "192.168.249.0/24",
"interfaceIp": "192.168.249.2",
"multicastRouting": "disabled",
"vlanId": 140,
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
}
}
Run Code Online (Sandbox Code Playgroud)
然后我需要能够访问查询字符串参数中的interfaceID新变量
我写了一个正则表达式来尝试使用 gsub 和 awk 替换每次出现的不在双引号中的单词。然而,即使该表达式适用于在线计算器,该表达式也根本无法替换我的脚本中的任何内容。
输入 =
studentNum=="00000"{print name, "is the prof"}
表达:
gsub( "studentNum(?=[^"]*(?:"[^"]*"[^"]*)*$)", "XXX", input)
预期输出:
XXX=="00000"{print name, "is the prof"}
刚接触此网站:我在分析 csv 文件中的数据时遇到问题。
我编写了一个小脚本,用于从 csv 文件读取输入并仅打印所需的字段:
awk -F, -v _sourcefile=$i -v title="\"${k}\"" -v box="_${j}_" -v score="$dock_score_column" -v hbond="${xp_terms_columns[0]}" -v electro="${xp_terms_columns[1]}" -v phoben="${xp_terms_col umns[2]}" -v phobenhb="${xp_terms_columns[3]}" -v lowmw="${xp_terms_columns[4]}" -v rotpenal="${xp_terms_columns[5]}" -v lipophilicevdw="${xp_terms_columns[6]}" -v phobenpairhb="${xp_terms_columns[7]}" -v sitemap="${xp_terms_columns[8]}" -v penalties="${xp_terms_columns[9]}" -v pistack="${xp_terms_columns[10]}" -v hbpenal="${xp_terms_columns[11]}" -v expospenal="${xp_terms_columns[12]}" -v picat="${xp_terms_columns[13]}" -v clbr="${xp_terms_columns[14]}" -v zpotr="${xp_terms_columns[15]}"
'BEGIN{format = "%-8s %s %9s %9s %8s %10s %7s %10s %16s %14s %9s %11s %9s %9s %12s %7s %6s %7s\n"} $title_column ~ title && $source_column ~ _sourcefile && $source_column ~ box …
我有一组数据,其中包含地震波传播时间及其相应信息(即产生波的源以及该波沿着传播到达每个地震检波器的时间)。我正在尝试格式化数据以适合我的代码,以便使用数据进行一些断层扫描,但我对 awk 还比较陌生。我现在需要将每个镜头/源的接收器数量插入到镜头/源信息行中,但每次的数量都是可变的。有没有办法让 awk 计算行数并将其插入到正确的字段中?
我的数据格式如下。
记录源/镜头的每一行:
s 0.01 0 0 -1 0
源/镜头信息后面的每隔一行:
r 0.1 0 0 1.218 0.01
r 0.15 0 0 1.214 0.01
r 0.2 0 0 1.213 0.01
Run Code Online (Sandbox Code Playgroud)
我可以使用“s”作为镜头行的标志,并且我想计算每个源/镜头的“r”行数,并将该数字插入到相应的“s”行中。
每条“s”线的“r”线数变化很大。
给定此示例输入:
s 0.01 0 0 -1 0
r 0.1 0 0 1.218 0.01
r 0.15 0 0 1.214 0.01
r 0.2 0 0 1.213 0.01
s 1.01 0 0 -1 0
r 0.05 0 0 1.159 0.01
r 0.1 0 0 1.127 0.01
r 0.15 0 …Run Code Online (Sandbox Code Playgroud) awk ×7
bash ×3
sed ×3
unix ×2
counting ×1
csv ×1
curl ×1
data.table ×1
gawk ×1
html ×1
html-table ×1
linux ×1
plpgsql ×1
postgresql ×1
r ×1
reformatting ×1
regex ×1
shell ×1
sorting ×1
vim ×1