我正在尝试将文件中的前 5 行存储在变量中url
。但我得到一个错误
-n5: command not found
fn_all_urls
存储文件的路径/home/urls.txt
我的线路是:
url=head -n5 ${fn_all_urls} #get first 5 lines in file
echo "$url"
我在 Ubuntu 18.04 64 位上使用 bash
我遇到了一些关于无头铬浏览器没有正确创建 html 文件的问题。唯一创建的东西/文件是单个{}.html文件
我的 domain.txt 包含:
https://ibm.com/
https://www.linux.org/whats-new/
PS:我使用的是 Ubuntu 18.04 64bit linux
我使用的命令如下:
cat domains.txt | xargs -I {} -P 4 sh -c timeout 25s chromium-browser --headless --no-sandbox --user-agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537. 36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' --dump-dom https://{} 2> /dev/null > {}.html
这是取自此链接
我有一个文本文件0test.txt
,其中包含以下代码片段。 (它有几个 http 和 https url 链接,但这些行将其单独列出)
player.setup({
file: 'http://website.com/site/myStream/playlist.m3u8?wmsAuthSign=c2VydmVyXs',
width: "100%",
aspectratio: "16:9",
});
我可以运行一个sed
命令:
cat /tmp/0test.txt | sed -n -e "/^ *file: */ { s/^ *file: *'//; s/', *$//p}"
并取回正确的 URL 链接:
http://website.com/site/myStream/playlist.m3u8?wmsAuthSign=c2VydmVyXs
但是当文件0test.txt
看起来像这样时:
player.setup({
file:
'http://website.com/site/myStream/playlist.m3u8?wmsAuthSign=c2VydmVyX3RpbWU9MTIvNC8yMDE5IDk6MTY6NTggUE0maGFzaF92YWx1ZT16RXpiUWowQ0V4TDJER3ExQnFZTEd3PT0mdmFsaWRtaW51dGVzPTM2MCZzdHJtX2xlbj0w',
width: "100%",
aspectratio: "16:9",
aspectratio: "16:9"
});
我没有得到任何回报。我怎样才能解决这个问题?
我试着:
我在使用 for 循环时遇到了问题,因为我不想创建多封电子邮件,我只想创建一封包含所有附件的电子邮件,并在主题行中使用当前日期和时间。
#!/bin/bash
# to run type "bash email_live_listing.sh"
dt_now_start=`date +"%Y-%m-%d %T"`
fn_dt_now_start=`date '+%Y_%m_%d__%H_%M_%S'`; #use to generate file name with date
currentdir="$(pwd)" #get current directory
ls $currentdir/us*.pdf -tp | grep -v '/$fn_pdf' #place files into variable
echo "$fn_pdf"
ITER=0
for t in ${fn_pdf[@]}; do
swaks --to [email protected] -s smtp.gmail.com:587 -tls -au [email protected] -ap password --header "Subject: Updated file ${fn_dt_now_start}" --body "Email Text" --attach-type ./${fn_pdf} -S 2
let ITER+=1 #increment number
done
Ps:我正在使用 Ubuntu 和Swaks,因为它小巧轻便,并且可以从 raspberry pi 运行,但我愿意尝试其他选项。
使用 bash 我试图用空格替换目录名称中的所有点及其子目录。
示例:目录dir.1.3 将变为dir 1 3
我到目前为止的脚本:
#!/bin/bash
for dir in *\ -\ *; do
[[ -d "$dir" ]] || continue # skip if not a directory
sub="${dir#* - }"
if [[ ! -e "$sub" ]]; then
mv "$dir" "$sub"
mv echo "$(echo "Result: ${dir%.*}" | sed 's/\./ /g').${dir##*.}"
fi
done
我可以获得一个 url 链接并搜索以file:开头的文本, 但我在从那里解析它时遇到了问题。
例子:
wget -qO- http://website.com/site/ | tr \" \\n | grep -w file:\* > output.txt
wget 命令给了我输出:
file: 'http://website.com/site/myStream/playlist.m3u8?wmsAuthSign=c2VydmVyXs',
我试图让输出看起来像。
http://website.com/site/myStream/playlist.m3u8?wmsAuthSign=c2VydmVyXs
我的目标是拥有一个 bash 脚本,其中包含将循环通过的多个源/url 列表,并且每个已处理/grep 的输出 url 将位于其自己的单独行上。
http://website.com/site/myStream/playlist.m3u8?wmsAuthSign=c2VydmVyXs
按照要求:
wget -qO- http://website.com/site/
这是发回内容的输出示例
。
player.setup({
file: 'http://website.com/site/myStream/playlist.m3u8?wmsAuthSign=c2VydmVyXs',
width: "100%",
aspectratio: "16:9",
});