反腐要闻2025

数据来源于https://www.ccdi.gov.cn/
2025-09-02 整理
中国铁路乌鲁木齐局集团有限公司副总经理龙东升接受审查调查 2025-09-02
中石化胜利石油工程有限公司原党委书记张洪山接受审查调查 2025-09-01
青岛市政府原党组成员、副市长吴经建被开除党籍 2025-09-01
辽宁省沈阳市大东区委副书记刘大威接受审查调查 2025-09-01
辽宁省人大社会建设委员会原副主任委员孙东克被开除党籍 2025-09-01
甘肃省人大常委会社会建设工作委员会原副主任周应军被开除党籍 2025-09-01
广西壮族自治区党委组织部分管日常工作的副部长崔佐钧接受审查调查 2025-08-31
重庆市政协党组成员、秘书长蓝庆华接受审查调查 2025-08-31
安徽合肥新站高新技术产业开发区党工委原书记黄卫东被开除党籍和公职 2025-08-31
重庆市武隆区委副书记、区长左军接受审查调查 2025-08-30
原贵州省扶贫办党组书记、主任叶韬接受审查调查 2025-08-29
新疆生产建设兵团第三师图木舒克市原市长姚小钦接受审查调查 2025-08-29
苏州工业园区管委会主任吴宏接受审查调查 2025-08-29
山西焦煤集团原副总经理杨新华接受审查调查 2025-08-29
江西省上饶市原副市长蔡宜萍被”双开” 2025-08-29
江西省萍乡市委原常委、政法委原书记杨劲松被”双开” 2025-08-29
检察机关依法对刘满仓涉嫌受贿、利用影响力受贿案提起公诉 2025-08-29
湖南省怀化市人大常委会原副主任杨一中被开除党籍 2025-08-29
河南省商丘市人大常委会原主任张家明被”双开” 2025-08-29
海南省国资委党委副书记王有福接受审查调查 2025-08-29
国家税务总局四川省税务局总会计师陈宗贵接受审查调查 2025-08-29
广西壮族自治区人大法制委员会主任委员蒋家柏接受审查调查 2025-08-29
广东省湛江市人大常委会原党组书记邓振新被开除党籍 2025-08-29
甘肃省甘南州政协原党组书记、主席徐强被开除党籍 2025-08-29
重庆市政府参事曹清尧接受审查调查 2025-08-29
安徽省宣城市委常委、宣传部部长郭金友接受审查调查 2025-08-29
青海省总工会原党组书记、副主席陈志忠被开除党籍 2025-08-28
青海高新区管委会原常务副主任张福军接受审查调查 2025-08-28
甘肃省民航机场集团原董事长阮文易被开除党籍 2025-08-28
锻造高素质专业化审查调查队伍 2025-08-28
中国电信云南分公司原总经理苗逢源接受审查调查 2025-08-27

————↑↑↑—2025-09-02整理 NEW

Flexus L实例 2核2G2M 特价38元1年
云南省普洱市政协党组书记、主席陆平接受审查调查 2025-08-27
徐州医科大学党委副书记、校长郑骏年接受审查调查 2025-08-27
新疆维吾尔自治区公共资源交易中心副主任薛建强接受审查调查 2025-08-27
三堂会审丨准确认定违规从事营利活动违纪和受贿犯罪 2025-08-27
湖南省永州市原副市长唐克俭被”双开” 2025-08-27
广西壮族自治区梧州市市长李振品接受审查调查 2025-08-27
广东省社会科学界联合会专职副主席余鸿纯接受审查调查 2025-08-27
穿透租赁表象识别受贿本质 2025-08-27
浙江省交通投资集团副总经理邵文年接受审查调查 2025-08-26
河南省委巡视组原正厅级巡视专员张光明被开除党籍 2025-08-26
河南省南阳市人大常委会原党组副书记高贤信被”双开” 2025-08-26
海南省人大常委会原党组副书记、副主任刘星泰受贿案一审宣判 2025-08-26
中国农业银行原党委委员、副行长楼文龙受贿案一审宣判 2025-08-25
上海市闵行区原二级巡视员琚汉铮被开除党籍 2025-08-25
湖南省衡阳市人大常委会原副主任段志刚被开除党籍 2025-08-25
贵州省人大教育科学文化卫生委员会原委员石京山被开除党籍 2025-08-25
重庆市沙坪坝区政协党组成员贾宇接受审查调查 2025-08-24
原大同煤矿集团有限责任公司副总经理吴兴利被开除党籍 2025-08-23
中国铁路南昌局集团有限公司原副总经理黄少雄接受审查调查 2025-08-22
中国石油华油集团公司原副总经理罗中华接受审查调查 2025-08-22
中国农业银行原首席专家兼深圳市分行原党委书记、行长许锡龙被开除党籍 2025-08-22
江苏省南京市人大常委会原副主任臧正金接受审查调查 2025-08-22
吉林省白城市人大常委会党组成员、副主任张伟接受审查调查 2025-08-22
河北省发展和改革委员会原主任陈永久接受审查调查 2025-08-22
海南省农业农村厅党组书记、厅长何琼妹接受审查调查 2025-08-22
海南省海口海事法院原党组书记、院长彭晓敏被开除党籍 2025-08-22
广西壮族自治区河池市委常委、副市长黄贤昌接受审查调查 2025-08-22
中国工商银行安徽省分行原副行长梁延国接受审查调查 2025-08-21
继续阅读“反腐要闻2025”

反腐要闻2024

中国农业银行河北省分行原高级专家宋雷被开除党籍 2024-12-31
最高检依法对张建春决定逮捕 2024-12-31
安徽省政协经济委员会原副主任李工接受审查调查 2024-12-30
四川省委巡视组原二级巡视员吴仁杰接受审查调查 2024-12-30
昆明高新技术产业开发区管委会主任毛建桥接受审查调查 2024-12-30
贵州盐业(集团)有限责任公司原副总经理孟德峰被”双开” 2024-12-30
海南省三亚市委原常委陈正光被开除党籍 2024-12-30
山西省临汾市人大常委会原副主任柴高潮接受审查调查 2024-12-30
广东省珠海市人大常委会党组成员张强接受审查调查 2024-12-29
人民日报社中国能源汽车传播集团有限公司原党委书记、董事长刘建林接受审查调查 2024-12-28
人民日报数字传播有限公司原董事长、总经理徐涛接受审查调查 2024-12-28
人民日报社山西分社社长何勇接受审查调查 2024-12-28
湖南省人大环境与资源保护委员会分党组书记刘志仁接受审查调查 2024-12-28
辽宁省丹东市人大常委会原副主任牛向东被开除党籍 2024-12-27
中国石油江苏销售分公司原总经理王力军接受审查调查 2024-12-27
山西省委原副书记商黎光受贿案一审宣判 2024-12-27
江苏证监局原党委书记、局长凌峰被”双开” 2024-12-27
最高人民检察院依法对杨子兴决定逮捕 2024-12-27
国家税务总局厦门市税务局党委书记、局长张国钧接受审查调查 2024-12-27
原广东省环境保护厅副巡视员田钢接受审查调查 2024-12-27
中国联通运营公司原副总裁朱立军接受审查调查 2024-12-27
中国银行业协会原秘书长黄润中接受审查调查 2024-12-26
广西壮族自治区钦州市政协原副主席林庆山被”双开” 2024-12-26
云南省建设投资控股集团总经理吕兵接受审查调查 2024-12-26
东风公司东风柳州汽车有限公司党委书记宣颖接受审查调查 2024-12-26
国家能源局华北监管局局长童光毅接受审查调查 2024-12-26
辽宁省大连市政协原党组书记、主席郝宏军受贿案一审宣判 2024-12-26
Flexus L实例 2核2G2M 特价38元1年
继续阅读“反腐要闻2024”

月食和日食计算

基本参数

地球公转周期 365.2564 天
月球公转周期 27.32166 天
月球轨道面与地球轨道面交角 α=5°09\alpha=5°09'
地球和月球都是椭圆轨道,但是考虑离心率都很小,可以近似为圆形。

计算思路


计算月食或者日食即计算向量 SunEarth\overrightarrow{SunEarth}EarthMoon\overrightarrow{EarthMoon} 的夹角如果接近0,即太阳、地球、月球一线月食发生。类似,若夹角180度,即日食发生。

继续阅读“月食和日食计算”

谏逐客书

秦·李斯

臣闻吏议逐客,窃以为过矣。昔缪公求士,西取由余于戎,东得百里奚于宛,迎蹇叔于宋,来丕豹、公孙支于晋。此五子者,不产于秦,而缪公用之,并国二十,遂霸西戎。孝公用商鞅之法,移风易俗,民以殷盛,国以富强,百姓乐用,诸侯亲服,获楚、魏之师,举地千里,至今治强。惠王用张仪之计,拔三川之地,西并巴、蜀,北收上郡,南取汉中,包九夷,制鄢、郢,东据成皋之险,割膏腴之壤,遂散六国之从,使之西面事秦,功施到今。昭王得范雎,废穰侯,逐华阳,强公室,杜私门,蚕食诸侯,使秦成帝业。此四君者,皆以客之功。由此观之,客何负于秦哉!向使四君却客而不内,疏士而不用,是使国无富利之实,而秦无强大之名也。(缪 一作 穆)

  今陛下致昆山之玉,有随、和之宝,垂明月之珠,服太阿之剑,乘纤离之马,建翠凤之旗,树灵鼍之鼓。此数宝者,秦不生一焉,而陛下说之,何也?必秦国之所生然后可,则是夜光之璧不饰朝廷,犀象之器不为玩好,郑、卫之女不充后宫,而骏良駃騠不实外厩,江南金锡不为用,西蜀丹青不为采。所以饰后宫,充下陈,娱心意,说耳目者,必出于秦然后可,则是宛珠之簪、傅玑之珥、阿缟之衣、锦绣之饰不进于前,而随俗雅化佳冶窈窕赵女不立于侧也。夫击瓮叩缶,弹筝搏髀,而歌呼呜呜快耳者,真秦之声也;《郑》《卫》《桑间》《昭》《虞》《武》《象》者,异国之乐也。今弃击瓮叩缶而就《郑》《卫》,退弹筝而取《昭》《虞》,若是者何也?快意当前,适观而已矣。今取人则不然,不问可否,不论曲直,非秦者去,为客者逐。然则是所重者,在乎色、乐、珠玉,而所轻者,在乎人民也。此非所以跨海内、制诸侯之术也。

  臣闻地广者粟多,国大者人众,兵强则士勇。是以太山不让土壤,故能成其大;河海不择细流,故能就其深;王者不却众庶,故能明其德。是以地无四方,民无异国,四时充美,鬼神降福,此五帝三王之所以无敌也。今乃弃黔首以资敌国,却宾客以业诸侯,使天下之士退而不敢西向,裹足不入秦,此所谓“藉寇兵而赍盗粮”者也。(太山 一作:泰山;择 一作:释)

  夫物不产于秦,可宝者多;士不产于秦,而愿忠者众。今逐客以资敌国,损民以益仇,内自虚而外树怨于诸侯,求国无危,不可得也。

银行推销的“低息”贷款到底划算吗?

1. 前言

我们经常收到银行的贷款推销,有的利息较高,我们通常就直接拒绝了,但是有些看似利息较低甚至可以“赚差价”的,没有仔细计算就接受了。如果仔细计算,就会发现其实中了圈套。

真实案例:
贷款分12期还款,贷款10000的话,每月还款848.333(等额本息),总计还款10180,年化利率1.8%?虽然1年期存款利率目前已经进入1时代,但是有些小银行或者理财产品可以做到2左右。按2%的平均利息水平粗略一算,10000块存起来可以赚200利息,贷款利息180,还能赚20块钱。聪明的读者,这样算对吗?能赚到利息差价吗?

乍一看,好像是赚了20块钱,但实际上赔了73块。下面我给大家详细算一下。

继续阅读“银行推销的“低息”贷款到底划算吗?”

中印生育行为影响家庭暴力的经济学分析pdf

武汉大学优秀硕士论文pdf,知网下载量高达12927,还在不断增长中,大胆猜测应该是知网建网以来最大下载量。知网下载收费,从B站视频整理成pdf,分享给大家欣赏。【下载

声明:仅供学习交流使用,请勿用做它途。如侵犯知识产权,请联系删除。

正文第2页 编造了《离婚法》,第4页新中国成立时间写成1049年,这种文章也能被中国知网收录!

torch FashionMNIST数据集导出图片

import numpy as np
import struct
 
from PIL import Image
import os

path_home='./data/FashionMNIST/raw/'
data_file = path_home+'train-images-idx3-ubyte'
# It's 47040016B, but we should set to 47040000B
data_file_size = 47040016
data_file_size = str(data_file_size - 16) + 'B'
 
data_buf = open(data_file, 'rb').read()
 
magic, numImages, numRows, numColumns = struct.unpack_from(
    '>IIII', data_buf, 0)
datas = struct.unpack_from(
    '>' + data_file_size, data_buf, struct.calcsize('>IIII'))
datas = np.array(datas).astype(np.uint8).reshape(
    numImages, 1, numRows, numColumns)
 
label_file = path_home+'train-labels-idx1-ubyte'
 
# It's 60008B, but we should set to 60000B
label_file_size = 60008
label_file_size = str(label_file_size - 8) + 'B'
 
label_buf = open(label_file, 'rb').read()
 
magic, numLabels = struct.unpack_from('>II', label_buf, 0)
labels = struct.unpack_from(
    '>' + label_file_size, label_buf, struct.calcsize('>II'))
labels = np.array(labels).astype(np.int64)
 
datas_root = 'mnist_train'
if not os.path.exists(datas_root):
    os.mkdir(datas_root)
 
for i in range(10):
    file_name = datas_root + os.sep + str(i)
    if not os.path.exists(file_name):
        os.mkdir(file_name)
 
for ii in range(numLabels):
    img = Image.fromarray(datas[ii, 0, 0:28, 0:28])
    label = labels[ii]
    file_name = datas_root + os.sep + str(label) + os.sep + \
        'mnist_train_' + str(ii) + '.png'
    img.save(file_name)

torch自定义数据集模型训练demo

import torch
from torch.utils.data import Dataset
from torchvision import datasets
from torchvision.transforms import ToTensor, Lambda
import matplotlib.pyplot as plt
from torch.utils.data import DataLoader
from torch import nn
import os
import pandas as pd
from torchvision.io import decode_image


device = torch.accelerator.current_accelerator().type if torch.accelerator.is_available() else "cpu"
#  独热数据逆转化 ,本例独热化非必须
def arc_one_hot(x,list=torch.tensor([0,1,2,3,4,5,6,7,8,9],dtype=torch.float).to(device)):
    return x@list
#  1.创建自定义数据集
class CustomImageDataset(Dataset):
    def __init__(self, annotations_file, img_dir, transform=None, target_transform=None):
        self.img_labels = pd.read_csv(annotations_file, header=None) # 注意首行默认会被作为标题行忽略,或者设置header=None 
        self.img_dir = img_dir
        self.transform = transform
        self.target_transform = target_transform

    def __len__(self):
        return len(self.img_labels)

    def __getitem__(self, idx):
        img_path = os.path.join(self.img_dir, self.img_labels.iloc[idx, 0])
        #print(img_path)
        image = decode_image(img_path).float().div(255) #需要转成float类型,否则无法训练
        #print(image.shape)
        label = self.img_labels.iloc[idx, 1]
        #print(label)
        if self.transform:
            image = self.transform(image)
        if self.target_transform:
            label = self.target_transform(label)
        #独热化
        # print(label)
        new_transform = Lambda(lambda y: torch.zeros(10, dtype=torch.float).scatter_(dim=0, index=torch.tensor(y), value=1))
        label = new_transform(label)
        # print("------fuck")
        # print(label)
        return image, label
    

# csv注意是否有标题行
csv_path='/Users/mnist_test_cus_data/imglist_train.csv'
img_dir='/Users/mnist_test_cus_data/imgs_train/'
batch_size = 64
# 创建自定义数据集实例
mydataset = CustomImageDataset(annotations_file=csv_path, img_dir=img_dir, transform=None, target_transform=None)

# 使用 DataLoader 加载数据
mydataloader = DataLoader(mydataset, batch_size, shuffle=True, num_workers=0) #, num_workers=4 macos报错
print(len(mydataloader))
print(len(mydataloader.dataset))
# print(mydataset[59999])
# print(mydataset[0][0])
# print(mydataset[0][1])
# exit()

# Download test data from open datasets.
test_data = datasets.FashionMNIST(
    root="data",
    train=False,
    download=True,
    transform=ToTensor(),
    target_transform = Lambda(lambda y: torch.zeros(10,dtype=torch.float).scatter_(dim=0, index=torch.tensor(y), value=1))
)
test_dataloader = DataLoader(test_data, batch_size=batch_size)

# 遍历 DataLoader
#for batch in mydataloader:
#    images, labels = batch
    #print(images.size(), labels.size())
    #print(images)
    #print(labels)

for X, y in test_dataloader:
    print(f"Shape of X [N, C, H, W]: {X.shape}")
    print(f"Shape of y: {y.shape} {y.dtype}")

    # print(X)
    # print(y)
    # print(arc_one_hot(y.to(device)))

    break
print(len(mydataloader))
# exit()


#  2. 可视化数据
def showdata():
    labels_map = {
        0: "T-Shirt",
        1: "Trouser",
        2: "Pullover",
        3: "Dress",
        4: "Coat",
        5: "Sandal",
        6: "Shirt",
        7: "Sneaker",
        8: "Bag",
        9: "Ankle Boot",
    }
    figure = plt.figure(figsize=(8, 8))
    cols, rows = 3, 3
    xxx=''
    for i in range(1, cols * rows + 1):
        sample_idx = torch.randint(len(mydataset), size=(1,)).item()
        img, label = mydataset[sample_idx]
        figure.add_subplot(rows, cols, i)
        # 独热逆转化
        label=arc_one_hot(label.to(device)).item()
        plt.title(labels_map[label])
        plt.axis("off")
        xxx=img
        plt.imshow(img.squeeze(), cmap="gray")
    plt.show()
    print(xxx.shape)
    print('------')
    print(xxx.squeeze().shape)

    # Display image and label.
    train_features, train_labels = next(iter(mydataloader))
    print(f"Feature batch shape: {train_features.size()}")
    print(f"Labels batch shape: {train_labels.size()}")
    img = train_features[0].squeeze()
    label = train_labels[0]
    plt.imshow(img, cmap="gray")
    plt.show()
    print(f"Label: {label}")
    # exit()


# 3.定义模型

print(f"Using {device} device")

# Define model
class NeuralNetwork(nn.Module):
    def __init__(self):
        super().__init__()
        self.flatten = nn.Flatten() #维度展平
        self.linear_relu_stack = nn.Sequential(
            nn.Linear(28*28, 512),
            nn.ReLU(),
            nn.Linear(512, 512),
            nn.ReLU(),
            nn.Linear(512, 10)
        )

    def forward(self, x):
        x = self.flatten(x)
        logits = self.linear_relu_stack(x)
        return logits

model = NeuralNetwork().to(device)
print(model)

# 4. 定义损失函数和优化器
loss_fn = nn.CrossEntropyLoss() #交叉熵
optimizer = torch.optim.SGD(model.parameters(), lr=1e-3)

# 5. 训练
def train(dataloader, model, loss_fn, optimizer):
    size = len(dataloader.dataset)
    print("size="+str(size))
    model.train() # 启用 Batch Normalization 和 Dropout,归一化,随机丢弃神经元防止过拟合,测试时不丢弃
    for batch, (X, y) in enumerate(dataloader):
        X, y = X.to(device), y.to(device)
        # Compute prediction error
        pred = model(X)
        # print("---------->pred=")
        # print(pred)
        # print(y)
        # print("-----------------------<")
        # 不需要独热逆转化,交叉熵计算过程包含了独热编码,但是不仍然可以使用独热参数
        # y=arc_one_hot(y)
        loss = loss_fn(pred, y)

        # Backpropagation
        loss.backward() # 计算梯度
        optimizer.step() # 根据梯度优化参数
        optimizer.zero_grad() # 梯度归零

        if batch % 100 == 0: # 每100个batch打印一次
            loss, current = loss.item(), (batch + 1) * len(X)
            print(f"loss: {loss:>7f}  [{current:>5d}/{size:>5d}]")
        # exit()
# 6. 测试
def test(dataloader, model, loss_fn):
    size = len(dataloader.dataset)
    num_batches = len(dataloader)
    model.eval()
    test_loss, correct = 0, 0
    with torch.no_grad():
        for X, y in dataloader:
            X, y = X.to(device), y.to(device)
            #print(y)
            #不需要独热逆编码
            #y=arc_one_hot(y)
            #print(y)
            pred = model(X)
            #print(pred)
            test_loss += loss_fn(pred, y).item()
            #统计个数
            # >>> xx==zz
            # tensor([ True, False, False,  True, False,  True, False,  True, False, False,
            #          True, False, False,  True, False, False,  True, False,  True, False,
            #          True, False, False, False, False,  True,  True, False,  True, False,
            #         False,  True, False, False, False, False, False, False,  True,  True,
            #         False, False, False,  True, False, False,  True, False, False,  True,
            #         False,  True, False,  True,  True, False, False, False, False,  True,
            #         False,  True,  True,  True])
            # >>> (xx==zz).type(torch.float)
            # tensor([1., 0., 0., 1., 0., 1., 0., 1., 0., 0., 1., 0., 0., 1., 0., 0., 1., 0.,
            #         1., 0., 1., 0., 0., 0., 0., 1., 1., 0., 1., 0., 0., 1., 0., 0., 0., 0.,
            #         0., 0., 1., 1., 0., 0., 0., 1., 0., 0., 1., 0., 0., 1., 0., 1., 0., 1.,
            #         1., 0., 0., 0., 0., 1., 0., 1., 1., 1.])
            # >>> (xx==zz).type(torch.float).sum()
            # tensor(25.)
            # >>> (xx==zz).type(torch.float).sum().item()
            # 25.0
            yy=arc_one_hot(y)
            correct += (pred.argmax(1) == yy).type(torch.float).sum().item()
    test_loss /= num_batches
    correct /= size
    print(f"Test Error: \n Accuracy: {(100*correct):>0.1f}%, Avg loss: {test_loss:>8f} \n")

#  7. 训练和测试
def do_train():
    epochs = 5
    for t in range(epochs):
        print(f"Epoch {t+1}\n-------------------------------")
        train(mydataloader, model, loss_fn, optimizer)
        test(test_dataloader, model, loss_fn)
    print("Done!")
    __save_model__()

# for var_name in model.state_dict():
#     print(var_name, "\t", model.state_dict()[var_name])

# for var_name in optimizer.state_dict():
#     print(var_name, "\t", optimizer.state_dict()[var_name])

#  8. 保存模型
def __save_model__():
    path="model.pth"
    torch.save(model.state_dict(), path)
    print("Saved PyTorch Model State to "+path)
#  9. 加载模型
def load_model():
    model = NeuralNetwork().to(device)
    model.load_state_dict(torch.load("model.pth", weights_only=True))
    return model
#  10. 测试模型
def  test_model():
    model = load_model()
    classes = [
        "T-shirt/top",
        "Trouser",
        "Pullover",
        "Dress",
        "Coat",
        "Sandal",
        "Shirt",
        "Sneaker",
        "Bag",
        "Ankle boot",
    ]

    model.eval()
    x, y = test_data[0][0], test_data[0][1]
    with torch.no_grad():
        x = x.to(device)
        pred = model(x)
        # 独热转化,同device才能计算
        y=arc_one_hot(y.to(device)).int()
        print(y)

        print(f"Predicted: {pred[0].argmax(0)}, Actual: {y}")
        predicted, actual = classes[pred[0].argmax(0)], classes[y]
        print(f'Predicted: "{predicted}", Actual: "{actual}"')

def  do_test_model():
    load_model()
    test_model()
def do_train_model():
    showdata()
    do_train()
    test_model()
def main():
    do_train_model()
    #do_test_model()
    

if __name__ == '__main__':
    main()

bash zsh awk按列表整理文件

背景

我们有一堆文件,在文件夹A中,需要按照文件列表list.txt 复制文件到B中,A中文件和list.txt 中文件均较多

1、文件列表

list.txt类似如下

mnist_test_644.png

mnist_test_2180.png

mnist_test_122.png

mnist_test_2816.png

2、bash

b=`sed ‘r/g’ list.txt`

for i in $b;

do

cp -r “A/”$i “B/”;

done

3、zsh

for i (${(s: :)$(<list.txt)});

do

cp -r “A/”$i “B/”;

done

或者(不推荐,如果txt每行有空格,导致错误,上面兼容更好)

fl=$(<list.txt)

for i (${(f)fl});

do

cp -r “A/”$i “B/”;

done

4、awk 拼接语句管道执行

awk ‘{print “cp -r A/”$1″ B/;” }’ list.txt |sh 

bash zsh awk字符串分割

fl.txt文件
12
34
56
78


Bash

1、IFS定义分隔符,默认空格、tab、换行、回车

bash-3.2$ a="a b c d"
bash-3.2$ for i in $a;
> do
> echo $i","
> done
a,
b,
c,
d,

bash-3.2$ b=`sed 'r/g' fl.txt`
bash-3.2$ for i in $b; do echo $i","; done
12,
34,
56,
78,

a="a,b,c,d"
#换行符分割
IFS=$'\n'

bash-3.2$ a="a,b,c,d"
bash-3.2$ for i in $a;
> do 
> echo $i;
> done
a,b,c,d

设置分隔符为逗号
bash-3.2$ IFS=$','
bash-3.2$ for i in $a; do  echo $i; done
a
b
c
d

2、使用分割符生成数组
bash-3.2$ aa="hello,shell,split,test"
bash-3.2$ array=(${aa//,/})
bash-3.2$ for i in ${array[@]}
> do
> echo $i
> done
Helloshellsplittest

bash-3.2$ array=(${aa/\n/,/})
bash-3.2$ for i in ${array[@]}; do echo $i; done
hello
shell
split
Test

bash-3.2$ echo ${array[0]}
hello
bash-3.2$ echo ${array[1]}
Shell


Zsh 
Zsh 不会默认使用空格、tab、换行、回车分割

1、(f)按行分割

str=$(<fl.txt)

% echo $str
12 
34 
56 
78

for i (${(f)str}){
echo $i"#"
}
12#
34# 
56# 
78#

注意,写在一起这样不行
for i (${(f)$(<fl.txt)});
do 
echo $i",";
done
12 34 56 78#

直接输出和使用变量行为不一致
echo $(<fl.txt)
12 34 56 78
aa=$(<fl.txt)
echo $aa
12
34
56
78


需要使用(s:chr:)方式
for i (${(s: :)$(<fl.txt)});
do 
echo $i",";
done


或者使用sed读取
aa=`sed 'r/g' fl.txt`;
for i (${(f)aa});
do 
echo $i",";
Done



2、(s:chr:)

s='foo,bar,baz'
#仅s也可,见过p w @,:可以用其他符号代替
for i  in ${(ps:,:)s} ; do   
echo "$i END"
done
foo END
bar END
baz END


awk

bash-3.2$ aa=`awk '{print $1}' fl.txt`
bash-3.2$ for i in $aa
> do
> echo $i
> done
12
34
56
78

ipynb转markdown

在vs code中Jupyter Notebook ipynb文件不能复制内容,不方便分享,而自带的导出功能非常鸡肋,需要安装XETEX,官网显示全部安装需要7个多G“By default, everything is installed (7+GB)”,直接劝退了。

既然ipynb就是markdown写出来的,直接转markdown岂不是更好?

网上很多使用下面的命令,但是我遇到了错误 Jupyter command `jupyter-nbconvert` not found. 有可能是我环境变量问题。

jupyter nbconvert –to markdown ‘abc.ipynb’

推荐使用下面的代码,不依赖环境

python3 -m nbconvert –to markdown ‘abc.ipynb’