Awk 将单引号后的行拆分为换行

Awk 将单引号后的行拆分为换行,awk,sed,Awk,Sed,我有一个这样的文本文件 'ABC&\]D' 'DEFGH' 'QUEMKLEMEL' 'SSBJ|!KFFL' 我想把它转换成 'ABC&\]D' 'DEFGH' 'QUEMKLEMEL' 'SSBJ|!KFFL' 将文本文件在单引号处拆分为新行 最初的问题是从windows转换bash脚本(EOL字符转换为Unix格式)。我试过了 但是,当我提交脚本时,会不断出现错误 sbatch: error: This does not look like a batch script

我有一个这样的文本文件

'ABC&\]D' 'DEFGH' 'QUEMKLEMEL' 'SSBJ|!KFFL'
我想把它转换成

'ABC&\]D'
'DEFGH'
'QUEMKLEMEL'
'SSBJ|!KFFL'
将文本文件在单引号处拆分为新行

最初的问题是从windows转换bash脚本(EOL字符转换为Unix格式)。我试过了

但是,当我提交脚本时,会不断出现错误

sbatch: error: This does not look like a batch script.
它是一个从windows传输到linux的长文本文件,但由于EOL字符而无法工作。我尝试了其他方法来转换它,以便思想可以将问题子集,并以这种方式尝试。

使用GNU awk:

$ gawk -v FPAT="([^ ]+)|('[^']+')" -v OFS="\n" '{$1=$1}1' file
输出

'ABC&\]D'
'DEFGH'
'QUEMKLEMEL'
'SSBJ|!KFFL'

使用
gnu sed
可以搜索
“”
并替换为
\n

sed“s/”/“\n/g”文件
“ABC&\]D”
“德福”
“克姆克莱梅尔”
“SSBJ |!”!KFFL'
或使用POSIX awk:

awk'{gsub(/\x27/,“\x27\n”)}1'文件
“ABC&\]D”
“德福”
“克姆克莱梅尔”
“SSBJ |!”!KFFL'
或者这个:

awk-F“'-vofs=“'\n”{$1=$1}1”文件
第一种解决方案:使用
awk
gsub
功能

awk '{gsub(/\x27 \x27/,"\x27\n\x27")} 1' Input_file
第二种解决方案:请您尝试以下内容,并用显示的样本进行书写和测试

awk '{for(i=1;i<=NF;i++){print $i}}' Input_file

awk'{for(i=1;请在您的问题中以代码的形式添加您的努力,我们非常鼓励您这样做。
awk '{for(i=1;i<=NF;i++){print $i}}' Input_file