文件#1:
test1,1
test2,2
test3
文件#2:
test2
test1
test4
期望的输出:
test4
我在 CentOS8 上使用鱼壳。
我想在文件中插入以下内容。
function fish_title
echo "? AmericaN ?"
end
但是在尝试将其粘贴到文件中时,我看到以下内容:
function fish_title
echo " AmericaN "
end
即使通过cat
命令,我仍然无法看到它。
这是locale
和的输出$TERM
❯ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
❯ echo $TERM
xterm-256color
我正在使用Windows 新终端访问我的CentOS
服务器,我正在使用CTRL+V或SHIFT+INSERT或mouse
右键单击粘贴到文件
编辑是nano
#!/bin/bash
start(){
printf 'Real IP: %s\n' "$(curl -s ifconfig.co)"
set -- /etc/openvpn/ovpn_tcp/*.nordvpn.com.tcp.ovpn
shift $(( RANDOM % $# ))
screen -S vpn -dm openvpn "$1" # connect
sleep 5 # wait for connection
printf 'VPN IP: %s\n' "$(curl -s ifconfig.co)"
}
stop(){
screen -S vpn -X quit
pkill -f ovpn
}
status(){
printf 'Current IP: %s\n' "$(curl -s ifconfig.co)"
}
case "$1" in
start)
if screen -ls | grep -w vpn &> /dev/null; then
echo "VPN Already Connected";
status
else
start
fi
;;
stop)
stop
;;
*)
status
;;
esac
bash
如果vpn stop
键入,前面的脚本会给出以下答案。
vpn stop
如果有活动vpn
连接运行:
[root@A ~]# vpn stop
Terminated
vpn stop
如果没有活动vpn
连接,则运行:
[root@A ~]# vpn stop
No screen session found.
Terminated
我想要实现的是:
vpn stop
如果有活动vpn
连接运行:
[root@A ~]# vpn stop
VPN Connection Closed Successfully
vpn stop
如果没有活动vpn
连接,则运行:
[root@A ~]# vpn stop
There's No Active VPN Connection to stop it.
我*.ovpn
的目录中有一个配置列表/etc/openvpn/ovpn_tcp/
在该目录中,我确实有一个名为的 bash 脚本go
包括以下代码,它将从列表中选择随机服务器并连接到它。
#!/bin/bash
set -- *.nordvpn.com.tcp.ovpn
shift $(( RANDOM % $# ))
openvpn "$1"
我尝试通过以下方式创建别名来调用脚本。
alias vpn='bash /etc/openvpn/ovpn_tcp/go'
但它一直给我一个错误
Options error: In [CMD-LINE]:1: Error opening configuration file: *.nordvpn.com.tcp.ovpn
Use --help for more information.
但是,如果我通过以下别名调用它,那么它将毫无问题地运行。
alias vpn='cd /etc/openvpn/ovpn_tcp/ && bash go'
通常我打开screen
会话以连接到vpn
然后将其分离,一旦完成,我重新连接到它,然后使用CTRL + C
取消vpn
连接。
我正在寻找的是设置2
别名
1-别名打开vpn,无需打开screen
会话或忙当前终端,一旦vpn连接,我想通过调用curl ifconfig.co
查看IP
.
2-别名关闭vpn。
注意:
alias
如果我们已经连接到 VPN,是否可以阻止打开 vpn 运行?
我正在尝试编辑以下 bash 脚本以从目录内的文件vpn
列表中随机连接。.ovpn
我已经下载了以下ovpn
文件nordvpn
这是以下 bash 脚本:
#!/bin/bash
RANGE=200 #here will be total number of ovpn config files inside tcp directory.
number=$RANDOM
let "number %= $RANGE"
fname="$*.nordvpn.com.tcp.ovpn"
openvpn "$fname"
我的问题是如何正确编写这部分fname="$*.nordvpn.com.tcp.ovpn"
这将让脚本随机选择一个 ovpn 并连接到它。
以下命令通过BTC
从特定交易所获取价格来实现我的目标。
curl -sS https://api.binance.com/api/v1/ticker/price?symbol=BTCUSDT | jq -r '.price'
输出暂时是,7222.25000000
但我想得到它7222.25
我确实有 Linux Centos 7 服务器,我想dropbox
实时同步特定目录。
例如,假设我确实有A
位于/var/www/html/A/
我想实时同步那个目录A
。dropbox
我已经注册了一个帐户,dropbox
但我现在不知道如何开始配置。
你能告诉我吗?
输入:
a-0;Password-1010;c-ss;d-fk;h-14;i-jawad;j-dd;[email protected];
a-7990:15:71;b-aa;c-1;Password-2020;h-iOS;[email protected];
输出:
[email protected],1010
[email protected],2020
我的输入文件与我的示例相同。我只想用分隔符直接打印Email
and 。Password
,
文件中的每一行都包含稳定的单词;Email-
and;Password-
我试过了,awk -F';' '{ print $8, $2 }'
但它不会给我的目标,因为它需要一些修改。
文件 1:
19a9s
c9019
5777
文件 2:
99a9s
89019
10919
预期产出
19a9s
89019
5777
因此,file 1
它line#2
以 letter 开头c
。如果该行以字母开头,我想将它用作条件,c
所以我想从第二个文件替换它file 2
我尝试了以下但未能给我预期的输出:
awk '
NR == FNR{ #for lines in first file
S[NR] = $0 #put line in array `S` with row number as index
next #starts script from the beginning
}
/^c/{$0=S[FNR]}{ #for line stared with `c`
$0=S[++count] #replace line by corresponded array element
}
1 #alias for `print $0`
' file2 file1
我有以下文件:
hello there. let's try&ACCT=1&bla bla bla&EX=1118&anything ss &SERIAL=1011&DEAL=NO
BLA BLA BLA&TOM=1&ACCT=2&LSLSLSLSL&none=1&EX=1218&lord=1&ok=1&SERIAL=201&flag=non
我需要从中提取 的字段值,ACCT=
以便 输出变为:EX=
SERIAL=
1,11/18,1011
2,12/18,201
其中EX
始终是一个 4 位数字,我想在其中插入 a/
作为中间字符。
输入:
1,1,10,1
2,1,10,3
3,0,10,1
预期输出:
1,1,10,1
2,1,10,3
2
那么如果字段编号并3
在另一行中重复,如何打印行。
输入:
{"case":"0901","emailed":"yes","vote":1,"accepted":"no"},
{"case":"0908","emailed":"yes","vote":8,1"accepted":"yes"},
{"case":"0911","emailed":"no","vote":10,1"accepted":"yes"},
{"case":"0090","emailed":"yes","vote":3,1"accepted":"no"},
编写脚本以接受输入,即使它类似于以下内容:
{"case":"0901","emailed":"yes","vote":1,"accepted":"no"},{"case":"0908","emailed":"yes","vote":8,1"accepted":"yes"},{"case":"0911","emailed":"no","vote":10,1"accepted":"yes"},{"case":"0090","emailed":"yes","vote":3,1"accepted":"no"},
输出
{'case': '0901', 'vote': 1, 'accepted': 'no', 'emailed': 'yes'}
{'case': '0090', 'vote': 3.1, 'accepted': 'no', 'emailed': 'yes'}
Lines Before: 4
Lines After: 2
4.1
我的剧本
import sys, re, ast
with open(sys.argv[1], 'r') as f:
items = ast.literal_eval(re.sub(r"(\d+),(\d+)", "\\1.\\2,", f.read().replace('\n','')))
sum = 0
for d in items:
if d['emailed'] == 'yes' and d['accepted'] == 'no':
sum += d['vote']
print(d)
print(sum)
所以我正在寻找的是如何编辑我的脚本以计算提供给脚本的行数before
和after
!
输入:
1,2,20,11
1,1,2018,111
输出:
1,02,20,11
1,01,18,111
我想插入0
到字段号 2,如果它是单个数字,则为月份。
并且想要从字段号 3 中删除前 2 位数字,如果它是 4 个数字,则为年份。
输入:
United+States
输出:
United States
我尝试了很多次都sed
没有成功。